AC
A C
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1741 Accepted Submission(s): 1089
Problem Description
Are you excited when you see the title "AC" ? If the answer is YES , AC it ;
You must learn these two combination formulas in the school . If you have forgotten it , see the picture.

Now I will give you n and m , and your task is to calculate the answer .
You must learn these two combination formulas in the school . If you have forgotten it , see the picture.

Now I will give you n and m , and your task is to calculate the answer .
Input
In the first line , there is a integer T indicates the number of test cases.
Then T cases follows in the T lines.
Each case contains a character 'A' or 'C', two integers represent n and m. (1<=n,m<=10)
Then T cases follows in the T lines.
Each case contains a character 'A' or 'C', two integers represent n and m. (1<=n,m<=10)
Output
For each case , if the character is 'A' , calculate A(m,n),and if the character is 'C' , calculate C(m,n).
And print the answer in a single line.
And print the answer in a single line.
Sample Input
2
A 10 10
C 4 2
Sample Output
3628800
6
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int c[20];
int a[40];
char str[10];
int pow( int x )
{ int i, sum = 1;
for (i = 1; i <= x; i++)
sum *= i;
return sum;
}
int fun( int n, int v)
{
int i = 0;
c[0] = 1;
for (i = 1; i <= n; i++) {
c[i] = c[i-1] * (n - i + 1 ) / i;
}
if ( str[0] == 'C')
return c[v];
else
return c[v] * pow(v);
}
int main( )
{
int T, a, b;
scanf("%d", &T);
while (T--)
{
scanf("%s%d%d",str, &a, &b);
printf("%d\n",fun(a,b));
}
return 0;
}
posted on 2011-07-28 09:16 more think, more gains 阅读(177) 评论(0) 收藏 举报
浙公网安备 33010602011771号