N!
Description
给出两个数 n, m。求
和 。
计算公式:
Input
输入数据有多组(数据组数不超过 250),到 EOF 结束。
对于每组数据,输入两个用空格隔开的整数 n, m (0 <= m <= n <= 20) 。
Output
对于每组数据输出一行,
和 ,用空格隔开。
提醒:因为n!和 m! 数据较大,定义数据类型应用 long long int,输出格式%lld
Sample
Input
1 1 5 3 4 3
Output
1 1 60 10 24 4
Hint
请注意数据范围,可能需要使用 long long 等 64 位整型,输出格式%lld
#include<stdio.h>
long long int A(long long int n)
{
long long int sum = 0;
if (n == 1 || n == 0)
{
return 1;
}
else
{
sum = n * A((n - 1));
return sum;
}
}
int main()
{
long long int n, m;
while (scanf("%lld%lld", &n, &m) != EOF)
{
long long int a, c;
a = A(n) / A((n - m));
c = A(n) / (A(m) * A((n - m)));
printf("%lld %lld\n", a, c);
}
return 0;
}