然而,代码和任务并不一致哦!具体请见下方详细说明:
任务说的条件是,第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;
}