鱼C论坛

 找回密码
 立即注册
查看: 2455|回复: 6

无循环语句,但是我看见他循环了。真的,我没骗你。。

[复制链接]
发表于 2011-11-15 18:58:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zjxy2545 于 2011-11-15 19:51 编辑

#include <stdio.h>

void main()
{
  long recursion (int n);
     int n;
  long result;
  printf("input a integer number\n");
  scanf("%d",&n);
  result = recursion(n);
  printf("%d! = %ld\n", n, result);
}
long recursion (int n)
{
long temp_result;
if( n < 0)
{
  printf("error");
}
else if (n == 0 || n == 1)
{
  temp_result = 1;
}
else
{
  temp_result = recursion(n - 1) * n;
}
return temp_result;
}
这是一个求阶乘算法的程序,但是后面的long recursion定义这个函数内容里,无循环语句,他怎么也会循环?我真的看见他循环了。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-15 21:53:06 | 显示全部楼层
递归:L ..........
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-15 23:34:13 | 显示全部楼层
递归!!!
呵呵!!递归我还不能理解哎!!一起进步啊!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-16 08:14:44 | 显示全部楼层
循环就是不断的调用一段代码,
你可以把这段代码放到一个函数里,让这个函数自己调用自己,效果和循环一样,这样的函数交递归函数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-16 12:36:10 | 显示全部楼层
temp_result = recursion(n - 1) * n;
调用了自己,递归函数当然有循环了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-11-16 19:38:45 | 显示全部楼层

大神啊,  你又来帮助我了。。。非常感谢你。。明白了,

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-11-16 19:39:31 | 显示全部楼层
zgt2008 发表于 2011-11-16 12:36
temp_result = recursion(n - 1) * n;
调用了自己,递归函数当然有循环了

好朋友, 谢谢你的解答。。明白了。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 18:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表