请编写递归函数,求排列数。
函数原型
double Arg(int x, int y);
说明:x 和 y 是非负整数,且 x ≥ y,函数值为排列数 Axy。
裁判程序
#include <stdio.h>
double Arg(int x, int y);
int main()
{
int m, n;
scanf("%d%d", &m, &n);
printf("%.10g\n", Arg(m, n));
return 0;
}
/* 你提交的代码将被嵌在这里 */
输入样例1
4 2
输出样例1
12
测试数据
输入样例 | 输出样例 |
0 0 | 1 |
5 0 | 1 |
34 17 | 8.300343946e+023 |
160 160 | 4.714723636e+284 |
1000 100 | 5.958926632e+297 |
要求:不使用循环语句,不调用阶乘函数。该函数直接调用自己求得计算结果。
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
代码如下:
double Arg(int x, int y)
{
if(y==0)
{
return 1;
}
return Arg(x-1,y-1)*x;
}