c++-求助这个函数的递归怎么理解,我是初学者,谢谢!

问题描述

求助这个函数的递归怎么理解,我是初学者,谢谢!
 #include<iostream>#include<Windows.h>using namespace std;int age(int);int main(){    cout<<age(5)<<endl;    system(""pause"");    return 0;}int age(int n){    int c;    if(n == 1)     {        c = 10;        cout<<n<<endl;    }    else c = age(n-1)+2;    return c;}

解决方案

age(5)->age(4)->age(3)->age(2)->age(1)1满足if条件,这个时候后面就没有递归了,执行age(1),执行完c = 10把值返回,返回到age(2)函数中,
同理执行age(2),返回值是12,就这么计算下去,一直执行到age(5)。

解决方案二:
if(n==1)是递归终止条件,else后面是递归的方法,你只要按照过程演算一遍就好理解了。 这就是那道算年龄的题。

解决方案三:
本人整理好的一些JavaScript函数提供给初学者的朋友们使用

解决方案四:
else c = age(n-1)+2;
return c;

解决方案五:
道理跟栈一样,先进后出

解决方案六:
计算递增数列a(n)=a(n-1)+2a1=10

时间: 2025-01-30 17:00:53

c++-求助这个函数的递归怎么理解,我是初学者,谢谢!的相关文章

C语言函数的递归和调用实例分析

一个函数在它的函数体内调用它自身称为递归调用.这种函数称为递归函数.C语言允许函数的递归调用.在递归调用中,主调函数又是被调函数.执行递归函数将反复调用其自身,每调用一次就进入新的一层   一.基本内容: C语言中的函数可以递归调用,即:可以直接(简单递归)或间接(间接递归)地自己调自己. 要点: 1.C语言函数可以递归调用. 2.可以通过直接或间接两种方式调用.目前只讨论直接递归调用. 二.递归条件 采用递归方法来解决问题,必须符合以下三个条件: 1.可以把要解决的问题转化为一个新问题,而这个

PHP 无限分类三种方式 非函数的递归调用!_php技巧

php无限分类大致有三种方式, 1.数据库通过设置父类ID来进行唯一索引,然后使用函数的递归调用实现无限分类: 2.数据库设计通过特定格式进行排列,然后使用mysql查询关键函数:concat.程序实现比较简单: 3.第三种不是太了解, 好像要使用到算法和数据结构进行排列. 今天我主要分享下第二种方式,一开始也是找了很多资料,确实比较难理解.不过最终还是给搞明白了,因此记下随笔,希望通过这篇文章能够帮助到大家. 一.数据库设计: 复制代码 代码如下: -- -- Table structure

java 递归深入理解_java

一.递归函数,通俗的说就是函数本身自己调用自己... 如:n!=n(n-1)! 你定义函数f(n)=nf(n-1) 而f(n-1)又是这个定义的函数..这就是递归 二.为什么要用递归:递归的目的是简化程序设计,使程序易读 三.递归的弊端:虽然非递归函数效率高,但较难编程,可读性较差.递归函数的缺点是增加了系统开销,也就是说,每递归一次,栈内存就多占用一截 四.递归的条件:需有完成任务的语句,需满足递归的要求(减小而不是发散) 五.递归进阶: 1.用递归算n的阶乘:   分析:n!=n*(n-1)

C语言函数的递归和调用实例分析_C 语言

一.基本内容: C语言中的函数可以递归调用,即:可以直接(简单递归)或间接(间接递归)地自己调自己. 要点: 1.C语言函数可以递归调用. 2.可以通过直接或间接两种方式调用.目前只讨论直接递归调用. 二.递归条件 采用递归方法来解决问题,必须符合以下三个条件: 1.可以把要解决的问题转化为一个新问题,而这个新的问题的解决方法仍与原来的解决方法相同,只是所处理的对象有规律地递增或递减. 说明:解决问题的方法相同,调用函数的参数每次不同(有规律的递增或递减),如果没有规律也就不能适用递归调用. 2

指针-opencv学习灰度图锐化的两个函数的差别不理解

问题描述 opencv学习灰度图锐化的两个函数的差别不理解 下面是一个灰度图锐化的函数,我有两种方式实现,方式1,和方式2,居然得到的结果不一样,图片数据也不一样,请高手看一下,可能是C语言的知识掌握的不好. void my_sharpen(const cv::Mat &image, cv::Mat &result) { result.create (image.size(), image.type ()); for(int j=1; j<image.rows-1; j++) { u

php函数的递归调用

什么是函数的递归调用?就是函数自己调用自己. php文件: <?phpfunction abc($n) { if ($n > 2) { abc(--$n); } echo '$n=' . $n . "<br />";}abc(4);?> 输出结果: $n=2 $n=2 $n=3 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php , 递归 , 文件 , 函数 , 结果 输出 函数

C语言函数的递归和调用

C语言中的函数可以递归调用,即:可以直接(简单递归)或间接(间接递归)地自己调自己. 要点: 1.C语言函数可以递归调用. 2.可以通过直接或间接两种方式调用.目前只讨论直接递归调用. 二.递归条件 采用递归方法来解决问题,必须符合以下三个条件: 1.可以把要解决的问题转化为一个新问题,而这个新的问题的解决方法仍与原来的解决方法相同,只是所处理的对象有规律地递增或递减. 说明:解决问题的方法相同,调用函数的参数每次不同(有规律的递增或递减),如果没有规律也就不能适用递归调用. 2.可以应用这个转

函数与递归:搜索单链表最后一个结点

问题描述 函数与递归:搜索单链表最后一个结点 LinkNode * FindRear(LinkNode *f){ if(f==NULL) return NULL; else if(f–>link==NULL) return f; else return FindRear(f->link); }函数体中第二行代码是递归终止条件,第三行是调用自己简化问题.那么第一行代码if(f==NULL) return NULL;是干啥的?可以去掉吗? 解决方案 异常处理,输入的参数就是Null的话就要立即返回

java 函数问题不太理解语句的含义

问题描述 java 函数问题不太理解语句的含义 import java.applet.applet; import java.awt.*; public class example4_12 extends applet { Button redbutton; public void init() { redbutton = new Button("我是一个红色的按钮:"); redbutton.setBackground(color.red); add(redbutton); //这句