问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

递归算法,他们的返回值怎么就进行相乘了呢?

发布网友 发布时间:2022-05-30 08:10

我来回答

5个回答

热心网友 时间:2023-10-16 01:38

int fact(int n) {
int result;
if (n == 1){
return 1;
}
result = fact(n- 1) * n;/*当程序运行到这里,调用本身函数fact(n-1)重新运行本身函数,就等于一个函数中还包含着其他函数,函数包含函数,递归中层层包含的函数都只是自己而已*/
return result;
}
以上递归函数,当每执行一次result = fact(n- 1) * n;都会调用其中的fact(n-1),由于n的变化(也就是n-1变成了下一次调用的参数值),每次调用除了最后一次外,都不是完整的调用,并没有返回result,也就是没有执行return语句,但当最后一次调用时候,n==1,返回1,这个1返回到result = fact(n- 1) * n;语句里代替了fact(n-1),这是最里面一层函数调用完毕,然后往外调用,直到最外面一层。
这种原理就好比一个表达式里加了n个括号,括号里面镶嵌着括号,也只有最里面的括号被求解完毕,外面的括号才会求解,最终得到解!

热心网友 时间:2023-10-16 01:39

程序没错,结果也是相乘。
你可以先假设n=2,递归一次,就是这里 fact(n- 1) ,调用了fact(1),返回1
所以2的时候结果是result =1*2=2;
假设n=3,result = fact(n- 1) * n=fact(2)*3=(注意上面2已经有结果)2*3=6
假设n=4,result = fact(n- 1) * n=fact(3)*4=(注意上面2已经有结果)6*4=24
这就是递归。

热心网友 时间:2023-10-16 01:39

比如说,你有个小弟,他专门干一件事:算阶乘。你只需要告诉他算出n的阶乘,小弟知道这个n后就会算出来告诉你。。。至于小弟怎么算出来,就不需要你知道了

没想到的是,其实你的小弟也跟你一样有个小弟,称为小弟弟(- -),小弟弟专门干一件事:算阶乘。他的大哥(其实就是你小弟)告诉他算m的阶乘,小弟弟知道这个m后就会算出来告诉他大哥。。。至于小弟弟怎么算出来,就不需要他大哥知道了。

。。。。。。

好了,现在你调用一次fact(n),fact()想:找个人帮我算出(n-1)!,然后我自己再乘上n不就行了。。。于是fact()会调用fact(n-1)。。。。。。然后,就是不停的出现这种过程。
最后fact(2)的时候,fact(2)会调用fact(1),fact(1)一看自己就会算了,直接返回值1,fact(2)收到1,乘上2,返回给fact(3)。。。。最后返回到fact(n)

热心网友 时间:2023-10-16 01:40

result = fact(n- 1) * n;
就是相乘啊`~

热心网友 时间:2023-10-16 01:40

nt fact(int n) {
int result;
if (n == 1){
return 1;
}
else
result = fact(n- 1) * n;
return result;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抖音火山版怎么查看钱包 查看方法介绍 职能手机v3职能手机的优点和缺点 关于Cascode运放的偏置电路 vb WindowsMediaPlayer1控件怎么同时播放两个视频文件 太阳马戏团特点 【加拿大必知百科系列】加拿大文化璀璨之星—太阳马戏团 太阳马戏团简介 垃圾短信如何拦截设置 垃圾短信拦截设置的方法 vivo xplay3s用奇兔刷机刷机后打电话显示SIM卡错误是怎么回事?卡重新插... 为什么我的vivo xplay3s联通卡插上去显示无SIM卡呢? C递归时返回值的问题 递归非要返回值吗 递归函数返回值问题? 递归的返回值问题,1. 递归是不是要在函数前面加return 2.一个递归左作为右值,左值又是什么。谢谢 递归的返回值是怎么回事???、 C语言函数的返回值(递归) 北京平安盛世小贷公司倒闭了吗 金融男女押韵搞笑句子大全 金钱的搞笑句子 您好,请问那个宣传策划书是大概怎么写的 表达赢钱的喜悦,搞笑点的句子,词都可以。 搞笑句子越多越好 内容带谜语 就像 一对夫妇炒股票结果输光 然后去买农药 但是身上的钱只可以 投资有风险幽默句子有哪些? 75%酒精混合中药当药水搽脸可以祛痘吗 含有酒精的祛痘产品可以祛痘吗 酒精里面能加阿司匹林能治痘痘吗 酒精能不能祛痘 1、回答问题的声音有力、响亮而有节奏( )2、形容天气睛朗暖和。() running man 回答问题正确时的音乐 没有蛋糕油用什么代替 函数递归调用返回值输出的次数 C语言递归二分法返回值问题 菜鸟求助---C语言递归函数返回值 c++一个递归函数有返回值,但他肯定调用自己很多次,到底返回哪一次的返回值呢 c#关于方法 递归使用时候的返回值问题 小白提问-递归问题 return 1 是什么意思? C语言递归函数的返回值递归问题为什么可以返回那么多次 这个递归函数是不是会出现9个返回值? 一个c语言递归函数的问题,请问为什么返回值不是1,求详细解答 请问给私家车上不计免赔险怎么买比较好?不计免赔险是如何理赔的 来了来了他们真的来了是什么歌? 杉杉来了中所有的歌曲 来了来了来了重复来了dj歌曲 手机号码注销了,微信密码忘了怎么注销? 手机掉了注销怎么办 标准授权业务余额冻结如果商家不处理能自动解除吗? 余额宝标准授权业务如何解冻? 余额宝里的钱冻结了,上里写着是标准授权业务余额宝冻结怎么办? 水星路由器,无线上网时上时断,右下角无线显示连接状态 水星路由器连起网时有时无!怎么回事!