C#递归的问题
答案:2 悬赏:30 手机版
解决时间 2021-02-20 07:42
- 提问者网友:雨不眠的下
- 2021-02-19 14:30
C#递归的问题
最佳答案
- 五星知识达人网友:痴妹与他
- 2021-02-19 15:34
递归相当于数学里面的递归式,你的函数好像写错了,+号应该是×号!这不是求阶乘的,而是求和的 求阶乘应该是下面的 int f(int n) { if (n < 1) return 1; int i = f(n - 1)*n; return i; } 解释如下: if (n < 1) return 1; 相当于 f(1)=f(0)=1; int i = f(n - 1)*n; 相当于f(n)=f(n-1)*n 你用数学的方法,倒推过去刚好是f(n)=n*(n-1)*....**1
全部回答
- 1楼网友:平生事
- 2021-02-19 17:02
//递归,其实就是自己调用,知道完成就不调用自己!假如n=5; //int 结果 //f(5)=f(4)+5 //f(4)=f(3)+4 //f(3)=f(2)+3 //f(2)=f(1)+2 //f(1)=f(0)+1 //f(0)=0 这样看 就很容易看出结果来了 假如 我们把带有函数的换成字母那回更直观,就是我们的中学数学了 f(5)=x4+5; x4=x3+4; x3=x2+3; x2=x1+2; x1=x0+1; x0=0; 这样我觉得大家口算就能算出来 f(5)是多少! 其实递推就是自己调用自己,只是每次调用参数都在更改,当参数与设定的值符合时,才不再调用自己!有点嵌套的感觉! return 0 就是你所谓的出口,它返回的是一个值,而不是一函数! 注意:理解的时候 在这里不把程序理解成一步到位的概念 !
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯