#欢迎各位大佬指正(期待可以指出可优化之处)
#n!代码的实现
#用for循环和递归函数的两种实现方式
#define _CRT_SECURE_NO_WARNINGS
#include
#include
int function1_n(int x)
{
int i = 0;
int sum = 1;
for(i=1;i<=x;i++)
{
sum *= i;
}
return sum;
}
int function2_n(int y)
{
if (y <= 1)
return 1;
else
return y * function2_n(y - 1);
}
int main()
{
int input1 = 0;
char input2[20] = {0};
int ret1 = 0;
int ret2 = 0;
printf("请输入你想计算的阶乘数>:");
scanf("%d" , &input1);
ret1 = function1_n(input1);
ret2 = function2_n(input1);
printf("用for循环算出的结果是:%d\n", ret1);
printf("用递归函数算出的结果是:%d\n", ret2);
if (ret1 == ret2)
printf("算法正确!\n");
else
printf("请检查算法错误\n");
printf("是否继续计算其他数字>:(请输入‘是’或者‘否’)");
scanf("%s", input2);
if (0 == strcmp(input2, "是"))
main();
else
return 0;
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)