| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 589 人关注过本帖, 1 人收藏
标题:【求助】递归函数
只看楼主 加入收藏
q1826050194
Rank: 2
等 级:论坛游民
帖 子:67
专家分:19
注 册:2011-3-7
结帖率:77.78%
收藏(1)
 问题点数:0 回复次数:4 
【求助】递归函数
各位朋友好,我一直对于函数里面的递归一直都难以理解,希望大家可以说一些自己对于递归函数的理解,最好是附上例子,希望大家的回帖可以帮助到很多像我这样对递归很迷茫的小盆友····  让我们将编程的魅力散射出来
搜索更多相关主题的帖子: 朋友 
2011-06-16 23:19
绯苍幻想曲
Rank: 2
等 级:论坛游民
帖 子:34
专家分:49
注 册:2010-11-29
收藏
得分:0 
函数的递归就像是一个人干活偷懒一样。比如公司老板让员工A去算整数1加到整数100的和,勤快的员工就会去做1+2+3+4+……+100,但是这样不是会很累么?于是爱偷懒的员工A想出了一个好办法,他想到,如果我知道1加到99的合是多少那就轻松了。于是员工A对下属B说:“去计算1加到99的和!”于是下属B就去算了,但是很不幸下属B也很懒,于是下属B就找到下属的下属C,对C说:“去,给我把1到98的整数和计算出来”,依次类推,直到最后一个下属(最后一个下属不需要计算,只需要告诉他的上级1这个数字就可以了)。于是乎计算结果一层一层的从下级传到上级,最后A接到了1-99的整数和,顺利的完成了任务,拿到了工资!总体来说,递归分为递推和回归。
2011-06-17 00:53
loveshuang
Rank: 9Rank: 9Rank: 9
来 自:湖北武汉
等 级:蜘蛛侠
帖 子:270
专家分:1198
注 册:2010-11-14
收藏
得分:0 
几个比较基本的递归例子的应用,代码如下,希望对楼主对递归的理解有帮助
1、将一整数逆序后放入一数组中(要求递归实现)
void convert(int *result, int n) {
 if(n>=10)
  convert(result+1, n/10);
 *result = n%10;
}
int main(int argc, char* argv[]) {
 int n = 123456789, result[20]={};
 convert(result, n);
 printf("%d:", n);
 for(int i=0; i<9; i++)
  printf("%d", result);
}

2、递归实现回文判断(如:abcdedbca就是回文)
int find(char *str, int n) {
 if(n<=1) return 1;
 else if(str[0]==str[n-1]) return find(str+1, n-2);
 else  return 0;
}
int main(int argc, char* argv[]) {
 char *str = "abcdedcba";
 printf("%s: %s\n", str, find(str, strlen(str)) ? "Yes" : "No");
}
3、分解成质因数(如435234=251*17*17*3*2)
void prim(int m, int n) {
 if(m>n) {
  while(m%n != 0) n++;
  m /= n;
  prim(m, n);
  printf("%d*", n);
 }
}
int main(int argc, char* argv[]) {
 int n = 435234;
 printf("%d=", n);
 prim(n, 2);
}
2011-06-17 00:57
夜叶
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:104
专家分:189
注 册:2011-5-7
收藏
得分:0 
谢谢3楼指点,学习了
2011-06-17 09:20
kelas
Rank: 6Rank: 6
等 级:侠之大者
帖 子:176
专家分:434
注 册:2010-5-28
收藏
得分:0 
以下是引用q1826050194在2011-6-16 23:19:53的发言:

各位朋友好,我一直对于函数里面的递归一直都难以理解,希望大家可以说一些自己对于递归函数的理解,最好是附上例子,希望大家的回帖可以帮助到很多像我这样对递归很迷茫的小盆友····  让我们将编程的魅力散射出来
这个讲的生动
2011-06-17 10:31
快速回复:【求助】递归函数
数据加载中...
 
   



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

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