| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 626 人关注过本帖
标题:函数的递归调用,不是很明白来个高手帮忙讲解下!
只看楼主 加入收藏
iqyuankong
Rank: 2
等 级:论坛游民
帖 子:68
专家分:10
注 册:2009-10-23
结帖率:92.86%
收藏
已结贴  问题点数:20 回复次数:5 
函数的递归调用,不是很明白来个高手帮忙讲解下!
请帮忙分析这个代码递归调用的过程,
#include<stdio.h>
unsigned long mu1(int n)
{
   unsigned long p;
   if(n>1)
         p=n*mu1(n-1);  /*  这里是怎么执行的哦   */
   else
       p=1L;    /*  1L是什么意思?  */
   return (p);
}
main()
{
    int m;
    puts("Calculate n!n=?\n");
    scanf("%d",&m);
    printf("%d!=%1d\n",m,mu1(m));
}
搜索更多相关主题的帖子: 讲解 递归 函数 
2010-01-01 12:00
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:0 
关于递归调用论坛里有很多贴了。。LZ先去看看。。哪里不懂再问问??
2010-01-01 13:00
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
收藏
得分:0 
#include<stdio.h>
unsigned long mu1(int n)
{
   unsigned long p;
   if(n>1)
         p=n*mu1(n-1);  /* mul(n-1)是调用mul函数   */
   else
       p=1L;    /*  我认为应该改为p=1*p  */
   return (p);
}
main()
{
    int m;
    puts("Calculate n!n=?\n");
    scanf("%d",&m);
    printf("%d!=%1d\n",m,mu1(m));
}
2010-01-03 08:23
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
收藏
得分:0 
这个效率很低下····
2010-01-03 08:25
pgy
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:C
等 级:小飞侠
威 望:8
帖 子:1248
专家分:2329
注 册:2009-9-23
收藏
得分:0 
10!
10*9!
10*9*8!
10*9*8*7!
......
if(p=1)返回1
结果10*9*8*7*6*5*4*3*2*1
意思是当p大于1的时候,返回当前项乘以下一项的阶乘,直到p=1的时候返回1停止

我可好玩啦...不信你玩玩^_^
2010-01-03 09:06
liangwenbc
Rank: 3Rank: 3
来 自:广州
等 级:论坛游侠
帖 子:168
专家分:174
注 册:2008-6-11
收藏
得分:20 
1L的意思是1是长整型数

qq7434391
2010-01-03 13:24
快速回复:函数的递归调用,不是很明白来个高手帮忙讲解下!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019266 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved