递归调用:函数直接或间接地调用自身
代码:
#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;
}
运行结果:
扫描二维码关注公众号,回复:
9154680 查看本文章
把整个递归过程捋一下
输入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