2010年2月19日 星期五

Problem 530 Binomial Showdown,C 的值

Problem 530 是輸入兩數 n 和 m 值後,算出

假設 n = 8, m = 3,則可以知道 8!/ (5! * 3!),也就是說,可以看成 8*7*6 / 1*2*3,依照 m 的大小來看,分母是從 8 乘到 6,分子就是從 1 乘到 3。但是在這個例子中,m 若大於 4,就要將 n - m再回傳給 m,因為 ,所以這種情況會導致你WA。

以下是主程式程式碼:
int n, m, i;
double total;
while (1)
{
total = 1;
scanf("%d %d", &n, &m);
if (n == 0 && m == 0) break;
if(m > n/2) m = n - m;
for (i = 1; i <= m; i ++)
total *= ((double)n - (double)i + 1) / (double)i;
printf("%.0f\n", total);
}

By David.K

p530題目連結
回ACM題庫目錄
回首頁

沒有留言: