任务描述
本关任务:用循环和递归算法求 n(小于 10 的正整数) 的阶乘 n!
。
编程要求
请在右侧编辑器Begin-End
处补充代码,完成本关任务。
测试说明
平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:
测试输入:10
预期输出:
递归算法求得10! = 3628800
循环算法求得10! = 3628800
代码文件
#include <stdio.h>
float fac_recursion(int n)
{
/********** Begin **********/
if(n==1)
return 1;
else
return n*fac_recursion(n-1);
/********** End **********/
}
int S=1;
float fac_loop(int n)
{
/********** Begin **********/
for(int i=n;i>=1;i--){
S*=i;
}
return S;
/********** End **********/
}
void main()
{
int n;
float y;
scanf("%d",&n);
y=fac_recursion(n);
printf("递归算法求得%d! = %.0f \n",n,y);
y=fac_loop(n);
printf("循环算法求得%d! = %.0f \n",n,y);
}