首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求解这个递归的意义

2012-08-07 
求解这个递归的意思#include stdio.hint main(){printf(%d,fun())return 0}int fun(){static int a

求解这个递归的意思
#include <stdio.h>


int main()
{

printf("%d",fun());
return 0;


int fun()
{
static int a=4;
if(a==1)
return 1;
else
{
a--;
return (a+1)*fun(); // 这个fun的值是多少?
}


return 0;
}



[解决办法]
楼主这个简单的递归看不出来吗?建议单步调试
调用开始执行顺序:1. a==4 a-- 4*fun
2. a==3 a-- 3*fun
3. a==2 a-- 2*fun
4. a==1 1

所以结果就是:1*2*3*4
[解决办法]
理解递归粗暴的方法就是将之当成另一个函数调用.
func() = 4*func()
3 * func()
2 * func()
1

= 4*3*2*1.

热点排行