个人粗浅分析

来源:5-8 递归函数(二)

倾泉

2015-06-09 19:50

个人的粗浅理解:

 第一天的桃子数=(第二天的桃子数+1)×2,循环到第10天,还剩1个返回值1也就是结束(也可以试试返回值100个随便几个,这个一就是代表到第十天还剩多少个),结束后才执行后面的return num,就是一直循环累加的num。如果不设置返回值他会一直计算无限循环,返回值就像一个数据参考,没有他计算机无法计算这个公式的结果,所以才会无限循环。 printf("第%d天所剩桃子%d个\n", n, num);输出为什么是反向的?因为我们的计算方式是递推1-2-3-...到-10,找到返回值是1,然后才向主函数返回数值9-8-7...-1。也就是回推。

输出的n,num就是计算过程。代表来回循环9次。

return num;代表的是就是“num = (getPeachNumber(n+1)+1)*2; ”一直到第十天的累加。

本身就是一个if...else...的语句,因为有了递归函数的存在,成为无线循环累加。递归更像是定义一个递归变量,设置一个结束点,计算结果。


写回答 关注

1回答

  • 倾泉
    2015-06-09 20:09:26

    后面说的不对,主函数调用的是getpeachnumber(1),所以才会有所谓的累加,这不叫累加

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926026 学习 · 20793 问题

查看课程

相似问题