老师用下面java代码例子说明递归,我搞不明白,为什么最终输出的不是1而是6???

2025-02-26 12:50:22
推荐回答(2个)
回答1:

就是一个求任意一个数阶乘的小程序啊,你传入3,然后第一次执行n*fact(n-1); 就是3*fact(2),然后n的值变为2,n*fact(n-1); 就是2*fact(1);最后n变成1,n*fact(n-1); 就是1*fact(0); ,fac(0); 就是1,所以就是3*2*1*1

回答2:

#include

/* print Fahrenheit-Celsius table
for fahr = 0, 20, ..., 300; floating-point version */
main()
{
float fahr, celsius;
float lower, upper, step;

lower = 0; /* lower limit of temperatuire scale */
upper = 300; /* upper limit */
step = 20; /* step size */

fahr = lower;
while (fahr <= upper) {
celsius = (5.0/9.0) * (fahr-32.0);
printf("%3.0f %6.1f\n", fahr, celsius);
fahr = fahr + step;
}
}