关于递归简单算法问题求解
这是一个简单的递归求阶乘的程序,我有个问题不明白。
就是用VC++调试下面程序的时候,下面程序 temp_result=recursion(n-1)*n; return temp_result; 这里那个n的值为什么从1开始慢慢增加到你输入的那个数啊。
例如:我输入了一个数字 5,此时n=5,temp_result= recursion(4)*5= recursion(3)*4*5= recursion(2)*3*4*5=1*2*3*4*5 。但是调试的时候n却是从1开始的。我不太明白为什么n调试从1开始而不是从5开始然后递减。。
程序代码:#include <stdio.h>
long recursion (int n);
void main()
{
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("n<0,input error!\n");
}
else if (n==0||n==1)
{
temp_result=1;
}
else
{
temp_result=recursion(n-1)*n; //调试这里
}
return temp_result; //调试这里
}








