请教一道递归调用函数的问题!
请问这道题中的加出加粗部分是什么意思,我看不懂它在说些什么,请高手指教一下。观察“运动的”递归过程是非常有趣的。修改阶乘函数,[bo]以显示它的局部变量和递归调用参数。对于每次递归调用,在一个独立的行中显示输出结果,并添加1个级别的缩进。[/bo]尽最大的努力使输出 结果清楚、有趣和有意义。
什么是在一个独立的行中显示输出结果,还有什么是1个级别的缩进?
# include <stdio.h>
long factorial(long number);
int main(){
int i;
for (i=0;i<=10;i++){
printf( "%2d!=%ld\n",i,factorial(i));
}
return 0;
}
long factorial(long number)
{
if (number<=1){
return 1;
}
else {
return (number*factorial(number-1));
}
}
[[it] 本帖最后由 cnlkf 于 2008-5-19 18:59 编辑 [/it]]
----------------解决方案--------------------------------------------------------
12
----------------解决方案--------------------------------------------------------
LS可以把你的程序让我看一下吗?还是有一些看不懂。
----------------解决方案--------------------------------------------------------
呵呵
#include<stdio.h>long factorial1(long number1);
long factorial2(long number2);
int main()
{
int i;
for (i=0;i<=10;i++){
printf("%2d!=%ld\n",i,factorial2(i));
factorial1(i);
printf("1\n");
}
return 0;
}
long factorial1(long number1)
{
static int j=0;
int k;
long a;
if (number1<=1){
return 1;
}
else{
printf("%2d*%2d! <------------ %d!=%ld\n",number1,number1-1,number1-1,factorial2(number1-1));
k=j++;
for (k=0;k<j;k++){
printf(" ");
}
factorial1(number1-1);
j=0;
}
}
long factorial2(long number2)
{
if(number2<=1){
return 1;
}
else{
return (number2 * factorial2(number2-1));
}
}
[[it] 本帖最后由 liaojuncong 于 2008-5-20 22:50 编辑 [/it]]
----------------解决方案--------------------------------------------------------
????
----------------解决方案--------------------------------------------------------
????
----------------解决方案--------------------------------------------------------
楼上此话咋理解?
学到递归调用就不能。。。。。
----------------解决方案--------------------------------------------------------
[quote][bo]以下是引用 [un]liaojuncong[/un] 在 2008-5-19 23:20 的发言
不是同班的那,这道题是朋友问我的,有一些地方看不懂,现在还在研究中,你定义的两个函数的标示符会不会有点太长了,C语言中虽然能支持255位,但一般都是只认前8位,超过了基本都当成同一个标示符处理的。。
----------------解决方案--------------------------------------------------------
有谁可以解释一下
什么是在一个独立的行中显示输出结果,还有什么是1个级别的缩进?
----------------解决方案--------------------------------------------------------
回复 8# 的帖子
长?现在的编译器都至少支持32位了呢,这算是短的。BCCN堕落了,广告都出现了……版主都在干什么……
----------------解决方案--------------------------------------------------------