C语言旅途之用递归函数求非负整数的阶乘问题

Ⅰ、简单的入门:
①、//代码摘下直接可以运行
//非负整数的阶乘问题
#include<stdio.h>
int main()
{
printf(“please input the number of n!\n”);
int n;
scanf("%d",&n);
int fact(int);
printf("%d! is %d\n",n,fact(n));
return 0;
}
int fact(int n)
{ //注意不需要再定义n; (因为已经定义过了)
if(n>0)
return n*fact(n-1);
else if(n==0)
return 1;
else
return 0;
}

②、结果展示:
例如:此程序是非负整数的递归函数的阶乘问题,例如:当输入n的值为5时,其5的阶乘(5!)的值为120;
在这里插入图片描述
☺寄语:
Ⅰ、此程序在Visual C++6.0版本上运行的;
Ⅱ、如果我给的程序有问题,或在叙述方面有问题,或者看不懂我讲解的意思,请及时指出或留言和我讨论,谢谢各位大佬!!!
Ⅲ、
①、在本程序中也是使用了函数的调用的过程,其函数是在主函数中进行函数的的声明int fact(int);然后再调用函数fact(n);通过递归来实现目标值即n的阶乘;
②、本程序的核心就是递归函数的实现的过程即int fact(int n),在本函数中将会实现函数的调用过程,if(n>0) return n*fact(n-1);当条件符合时,则将一直递归调用该函数直到结束条件当n=0时,返回的值为1(因为0!=1);再层层返回直到能找到所求目标的值;
③、非负整数的阶乘问题和其他的递归函数的调用的过程是一样的,其目标就是通过递归来求得目标函数,但一定要理清函数的调用过程以及层层返回的过程,直到找到所需的值,一定要反复推演,直到彻底理清楚,过程虽然复杂麻烦,但理清后就会特别的清晰,就能彻底记住方法与过程;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狮子座的男孩

如果可以,请我喝杯咖啡吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值