[求助]为什么这个程序没有循环语句却能循环啊?
/* Note:Your choice is C IDE */#include "stdio.h"
main()
{
int sum,n;
scanf("%d",&n);
sum=fun(n);
printf("sum=%d\n",sum);
}
int fun(int n)
{
int s;
if(n==1)aiy
s=1;
else
s=fun(n-1)+n;
return s;
}
这个程序的作用是把输入一个值N,求N以前的所有正整数的和。红色部分是调用的函数,这里我有个疑问,为什么调用函数里没有循环语句却能够循环呢?譬如我输入N值为6,所以s=fun(5)+6=fun(4)+5+6=...=fun(1)+....+5+6=1+...+5+6这种情况通常是我在使用了for或者while语句才能实现的啊,为什么这里没有循环语句却能够循环呢?我问过了一下同学他又说不是循环,真是晕啊~~
----------------解决方案--------------------------------------------------------
递归
----------------解决方案--------------------------------------------------------
我查了一下资料,
循环:判断条件->执行循环体语句
递归【直接递归】:一个函数在它的函数体内调用它自身。
可是还是不是太明白,能够说说两者的异同吗?
----------------解决方案--------------------------------------------------------
这个不太好讲。。。查查书吧。。。书 上有详尽的说明
----------------解决方案--------------------------------------------------------
晕~~就是因为书本的内容不详尽......
算了,我去google搜索看看吧~~
----------------解决方案--------------------------------------------------------
看一下书吧。递归函数的调用 。
----------------解决方案--------------------------------------------------------