c语言中,任何用递归编写的函数都可以用循环代替,那任何用循环编写的函数可以用递归代替吗?
c语言中,任何用递归编写的函数都可以用循环代替,那任何用循环编写的函数可以用递归代替吗?
日期:2012-06-18 00:23:04 人气:1
不行:用循环编写的函数可以用递归代替是因为循环体内的数之间有一定的规律,如:
求n!用递归为
long fac(int n)
{ if(n==0)
return 1;
else
return n*fac(n-1);
}
在循环中每个相邻的数之间都必须有一定内部规律,即数与数之间相差一,如:
int i,s=1;
for(i=1;i<=n;n++)
{
s*=i;
}
但是举个最简单的例子:
定义一个一维数组输入50个学生的考试成绩,统计不及格的