问答详情
源自:5-7 递归函数(一)

getWordNumber(n-1)+n ; 求解

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

}


提问者:慕粉032 2016-08-15 12:22

个回答

  • 雨巷里的守望者
    2016-09-08 19:33:22

    多谢一楼的回答,稍微解释一下,

    你把10代进去,会得到

    getWordNumber(10)=getWordNumber(10-1)+10=getWordNumber(9)+10,这时候

    n就变成9了,根据递归函数,再把9代进去,得到

    getWordNumber(9)+10=getWordNumber(9-1)+9+10=getWordNumber(8)+10+9,

    依次类推,最后是

    getWordNumber(1)=1+2+3+4+5+6+7+8+9+10=55


  • 慕后端9788028
    2016-09-04 14:33:39

    #include <stdio.h>

    /* 定义获取单词数量的函数 */

    int getWordNumber(int n)

    {   

        if(n == 1)

        {

            return 1;    //第一天只会1个单词

        }

        else{

            int a;(重新定义一个量a

            a=getWordNumber(n-1)+n;

            return a ;       //到第天会的单词数量(这里把a取得值返回给getwordnumber()函数,这下懂了吧)

        }

    }

    int main()

    {

        int num = getWordNumber(10);     //获取会了的单词数量

        printf("小明第10天记了:%d个单词。\n", num);

        return 0;

    }


  • 我改名字了
    2016-08-15 17:08:36

    #include <stdio.h>

    /* 定义获取单词数量的函数 */

    int getWordNumber(int n)

    {   

        int xx;

        if(n == 1)

        {

            return 1;    //第一天只会1个单词

        }

        else{

            printf("%d\t",n);

            xx=getWordNumber(n-1)+n; 

            printf ("\n%d\t",xx);//到第天会的单词数量

        }

        return xx;

    }

    int main()

    {

        int num = getWordNumber(10);     //获取会了的单词数量

        printf("小明第10天记了:%d个单词。\n", num);

        return 0;

    }


  • qq_internationa_03820599
    2016-08-15 14:02:15

    getWordNumber(10)=getWordNumber(10-1)+10=getWordNumber(9)+10

    getWordNumber(9)=getWordNumber(9-1)+9=getWordNumber(8)+9

    getWordNumber(8)=getWordNumber(8-1)+8=getWordNumber(7)+8

    getWordNumber(8)=getWordNumber(7-1)+7=getWordNumber(6)+7

    getWordNumber(7)=getWordNumber(6-1)+6=getWordNumber(5)+6

    getWordNumber(6)=getWordNumber(5-1)+5=getWordNumber(4)+5

    getWordNumber(5)=getWordNumber(4-1)+4=getWordNumber(3)+4

    getWordNumber(4)=getWordNumber(3-1)+3=getWordNumber(2)+3

    getWordNumber(3)=getWordNumber(2-1)+2=getWordNumber(1)+2

    getWordNumber(1)=1


  • Jerry_Liao
    2016-08-15 13:58:22

    getWordNumber(n-1) 是指前几天会的单词数量总和,n是第n天会的单词数量,两者相加就是到第n天所学会的单词数量总和