c语言用递归方法计算n!,c语言用递归法计算n!
#包含stdio.h
int sum(int n);
int main() {
int n;
Puts(请输入正整数n:);
scanf(%d ,n);
printf( 1 1到%d的和等于:%d\n ,n,sum(n));
返回0;
}
int sum( int n ) {
如果(n ^ 1){
返回n sum(n-1);
} else if(n=0) {
//当输入n小于等于0时,返回0。
返回0;
}否则{
//当n!=1结束递归循环。
返回1;
}
}运行结果:
例如:
当n=5时,第一次执行sum函数:
判决5 1
返回5总和(5 - 1)
5等待sum(5-1)函数执行完毕。
sum函数的第二次执行:
总和(5 - 1)=总和(4)
判决4 1
返回4总和(4 - 1)
4等待sum(4-1)函数执行完毕。
sum函数的第三次执行:
总和(4 - 1)=总和(3)
判决3 1
返回3总和(3 - 1)
3等待sum(3-1)函数执行完毕。
sum函数的第四次执行:
总和(3 - 1)=总和(2)
判决2 1
返回2总和(2 - 1)
2等待sum(2-1)函数执行完毕。
sum函数的第五次执行:
总和(2 - 1)=总和(1)
1判断1这个等式不成立。
返回1
返回结果1
第五个返回结果:return 1逐层向上,
第四次运行结束:(retrun 21)=return 3;
第三次运行结束:(return 3 2 1)=return 6;
第二次运行结束:(return 4 3 2 1)=return 10;
第一次运行结束:(return 5 4 3 2 1)=return 15;
最终程序结束并返回最终结果:15
转载请联系作者授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。