有关递归的问题。求解答
#include <stdio.h>int odd (int x)
{
return x%9;
}
int tail (int x)
{
if (x == 1)
{
return 1;
}
else
{
return odd (x) + tail (x-1);
}
}
int main()
{
int x = 4;
x = tail(x);
printf("%d",x);
return 0;
}
X等于4.调用tail函数,tail函数再调用odd函数,里面的X是怎么变化的。这里不太懂: return odd (x) + tail (x-1);
希望有高手,帮我一步一步分解出来。
你可以正向考虑:return odd (x) + tail (x-1);
x=4 odd(4)+tail(3)
x=3 odd(3)+ tail(2)
x=2 odd(2)+ tail(1)
1
==> 1+ odd(2) + odd(3)+ odd(4)
也可以直接反方向思考,从x=2开始到x=4
页:
[1]