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

来源:5-7 递归函数(一)

weixin_慕先生019299

2019-11-16 11:45


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


写回答 关注

3回答

  • 一世倾城只为你
    2020-02-03 19:22:25

    因为当n=1时,n-1=0而不等于1,是假命题,不执行了

    李梓煊121...

    你好 n=1的时候为什么没去执行if(n==1)

    2020-02-05 20:31:18

    共 1 条回复 >

  • 慕用8093283
    2019-11-16 22:57:40

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

    慕雪9555... 回复weixin...

    同问111

    2019-12-10 21:37:15

    共 2 条回复 >

  • 慕用8093283
    2019-11-16 22:55:53

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

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926028 学习 · 20793 问题

查看课程

相似问题