5-7 递归函数(一)
本节编程练习不计算学习进度,请电脑登录imooc.com操作

递归函数(一)

从前有座山啊,山里有座庙啊,庙里有个老和尚和一个小和尚,他们在干什么呢?老和尚在给小和尚讲故事,讲的什么呢?讲的是从前有座山...看到这,大家都会问老师你不讲课,你说这个老掉牙的故事干吗?

在这说这个故事是有意义的,大家再仔细读读这个故事,是不是老和尚在说一件事,当碰到一个条件的时候都会再重复的从头说起呢?

那么这就要给大家引入一个新的概念——递归,递归就是一个函数在它的函数体内调用它自身。执行递归函数将反复调用其自身,每调用一次就进入新的一层。

例如:计算n的阶乘可以使用以下代码:

运行结果为: 5的阶乘=120 

任务

小明为了学好英语,需要每天记单词,第一天记1个,第二天记2个依次类推,到第10天的时候小明一共记了多少个单词?

请用代码完成,算出小明第10天开始的时候会了多少个单词?

第10行根据注释提示,填写代码

输出结果为:

  1. #include <stdio.h>
  2. /* 定义获取单词数量的函数 */
  3. int getWordNumber(int n)
  4. {
  5. if(n == 1)
  6. {
  7. return 1; //第一天只会1个单词
  8. }
  9. else{
  10. return; //到第天会的单词数量
  11. }
  12. }
  13. int main()
  14. {
  15. int num = getWordNumber(10); //获取会了的单词数量
  16. printf("小明第10天记了:%d个单词。\n", num);
  17. return 0;
  18. }
下一节