标题
阶乘运算
描述
编写P(m,n)=m!/n!/(m-n)!,(m>n)。求出P(m,n)的值。
时间限制
1
内存限制
10000
类别
1
输入说明
输入两个整数(m>n),如8 6
输出说明
输出保留2位小数
输入样例
8 6
输出样例
28.00
提示
采用for循环结构,数据类型为单精度浮点型,输出保留两位小数,格式%.2f。
方法一:for循环
// for循环方法
#include<stdio.h>//
float func(int n);
int main()
{
int n,m,a;
float ans_n, ans_m, ans_nm, ans;
scanf("%d %d",&m,&n);
a = m-n;
ans_n = func(n);
ans_m = func(m);
ans_nm = func(a);
printf("%.2f",ans_m/(ans_n *ans_nm ));
}
float func(int n)// for循环方法
{
float sum ;
sum = 1;
for(;n>0;n--)
{
sum = sum * n;
}
return sum;
}
方法二:递归
#include<stdio.h>
float func(int n);
int main()
{
int n,m,a;
float ans_n, ans_m, ans_nm, ans;
scanf("%d %d",&m,&n);
a = m-n;
ans_n = func(n);
ans_m = func(m);
ans_nm = func(a);
printf("%.2f",ans_m/(ans_n *ans_nm ));
}
float func(int n)// 递归方法
{
if(n==1) return 1;
else
{
return func(n-1) * n;
}
}