然而,代码和任务并不一致哦!具体请见下方详细说明:
任务说的条件是,第n天记住n个单词,而问题是第10天开始的时候,注意,是「开始」的时候,那么小明已经会了的单词就是前面(10-1)天记住的单词,而不是全部10天能记住的单词。所以,正确的代码应该是下面这样的:
#include <stdio.h> /* 定义获取单词数量的函数 */ int getWordNumber(int n) { if(n == 1 || n == 0) { return 0; //第一天开始时,1个单词都不会。因为,要到第一天结束后,才是记住了1个单词。 } else { return getWordNumber(n-1) + (n-1); /* 第n天开始时会的单词数量,是前一天「(n-1)天」当天记住的单词,加上,前一天开始时已经会了的单词。 */ } } int main() { int day; // 打印数从第1天到第10天的每天开始时,会了的单词数量 for(day = 1; day <=10; day++) { int num = getWordNumber(day); //获取会了的单词数量 printf("小明第%d天开始时,已经会了:%d个单词。\n", day,num); } return 0; }