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

如果n=10的话return后面的计算式算出的值不应该是19吗 为什么是55呢


#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;
}


2019-11-16 源自:C语言入门 5-7 166 浏览 2 回答

你的思想是一个误区,getWordNumber(n-1)是一个函数。是一个整体再加n,我也在这个误区里面绕了很久。

2019-11-16
回复 1

相当于这样((((((((1 + 2)+ 3)+ 4)+ 5)+ 6)+ 7)+ 8)+ 9)+ 10

2019-11-16
回复 1

weixin_慕先生019299 (提问者)

那为什么这个函数在n-1等于1是就不再继续了呢

#1 2019-11-17 回复

慕雪9555539 回复 weixin_慕先生019299

同问111

#2 22小时前 回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信