感覺他給的好難理解,我這個自我感覺好理解一些,有大佬幫我看看嗎,
#include <stdio.h>
/* 定義獲取單詞數(shù)量的函數(shù) */
int getWordNumber(int n)
{? ?
? ? int a;
? ? if(n == 1)
? ? {
? ? ? ? return 1;? ? //第一天只會1個單詞
? ? }
? ? else{
? ? ? ? ?a=getWordNumber(n-1)+n;
? ? }
? ? ?return a;
}
int main()
{
? ? int num = getWordNumber(10);? ? ?//獲取會了的單詞數(shù)量
? ? printf("小明第10天記了:%d個單詞。\n", num);
? ? return 0;
}
2021-08-09
其實沒必要引入"a"之類的表達,思路和我代碼的黑體部分是一樣的。而答案給出的就很簡潔,直接在return里調(diào)用函數(shù)。原因很簡單,無論是int a 然后a=調(diào)用函數(shù)還是n=調(diào)用函數(shù),最終return的東西(a或者n)本質(zhì)上還是調(diào)用的函數(shù),所以就沒必要用另外的詞(a)來包裝。唯一的作用是好理解。#include <stdio.h>
/* 定義獲取單詞數(shù)量的函數(shù) */
int getWordNumber(int n)
{? ?
? ? if(n == 1)
? ? {
? ? ? ? return 1;? ? //第一天只會1個單詞
? ? }
? ? else{
? ? ? ? ?n+=getWordNumber(n-1);
? ? ? ? ?return n;? ? ? //到第天會的單詞數(shù)量
? ? }
}
int main()
{
? ? int num = getWordNumber(10);? ? ?//獲取會了的單詞數(shù)量
? ? printf("小明第10天記了:%d個單詞。\n", num);
? ? return 0;
}