慕仰103958
2018-11-22 01:09
#include <stdio.h>
/* 定义获取单词数量的函数 */
int getWordNumber(int n)
{
if(n == 1)
{
return 1; //第一天只会1个单词
}
else{
return getWordNumber(n-1)+n; //到第天会的单词数量
}
}
int main()
{
int num = getWordNumber(10); //获取会了的单词数量
printf("小明第10天记了:%d个单词。\n", num);
return 0;
}
前面已经算出10+9+8······+1
最后当n==1的时候结束了循环,那为什么返回的结果不是1 而是55呢????????? 卡在这里了 想不明白
当n==1的时候确实结束了循环且结果为1,但仅仅结束的循环是getwordnumber(1)
在这循环外应该是getwordnumber(2)+3
其中getwordnumber(2)=getwordnumber(1)+2
因此类推getwordnumber(3)=getwordnumber(2)+3...
...getwordnumber(10)=getwordnumber(9)+10
全部翻译过来就是1+2+3+4+...+10
C语言入门
926207 学习 · 20797 问题
相似问题