函数递归调用(C++)

递归调用:函数直接或间接地调用自身

代码:

#include "stdafx.h"
#include <iostream>
using namespace std;

int digui(int x);
int _tmain(int argc, _TCHAR* argv[])
{
    int n;
    cout<<"please input a number:";
    cin>>n;
    int sum=digui(n);
    cout<<n<<"的阶乘是:"<<sum<<endl;
    system("pause");
    return 0;
}

int digui(int x)
{
    int f;
    if(x==0)
        f=1;
    else
        f=digui(x-1)*x;
    return f;
}

运行结果:

把整个递归过程捋一下

输入x=4

每次进入阶乘函数 x 值会减1,x不为0 就会调用递归 f=digui(x-1)*x;

直到x=0,f=1,f=1就会到return f,将 f 返回到调用点 f=digui(x-1)*x;

再继续 return f 返回到调用点,x退回为1,f=digui(0)*1 即1

x再退回为2

x 再退回为3

x退回为4

发布了24 篇原创文章 · 获赞 7 · 访问量 3775

猜你喜欢

转载自blog.csdn.net/qq_39980334/article/details/104265106