为了账号安全,请及时绑定邮箱和手机立即绑定

递归函数中,位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反;

这是什么意思?

正在回答

2 回答

这个代码很容易迷惑人,其实不要去管自定义的函数是不是个死循环,或者怎么传递的。你就从n=1开始,

这个函数的局限性就是n只能从小于10的数开始,就是说从1到10的过程。如果反着的话,和题意不合,你要知道

第1天有多少,才能顺下来,之后类推。你要是知道了第5天,还可以两面推,那就厉害了!

0 回复 有任何疑惑可以回复我~

你可以去网上看下用递归函数写阶乘算法的代码,函数里面又包含了自身的函数,这样写在内层函数后面的语句执行顺序是跟调用函数的顺序相反的

0 回复 有任何疑惑可以回复我~
#1

奇怪的阿怪 提问者

#include <stdio.h> int getWordNumber(int n) { if(n == 1) { return 1; } else{ return getWordNumber(n-1)+n ; } } int main() { int num = getWordNumber(10); printf("小明第10天记了:%d个单词。\n", num); return 0; } 望讲解哪里顺序相反了
2017-07-27 回复 有任何疑惑可以回复我~
#2

Belfoire 回复 奇怪的阿怪 提问者

题目说的是递归调用后的语句,而你这个是递归调用前的语句,如果你把if中条件取反,然后if中的内容跟else里面的内容交换位置,这样你的else语句就是递归调用后的语句,你再看看递归函数里面语句执行的顺序
2017-07-27 回复 有任何疑惑可以回复我~
#3

奇怪的阿怪 提问者 回复 Belfoire

请问哪里算是递归调用的地方呢? 能不能写一下改完的代码
2017-07-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

递归函数中,位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反;

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信