递归图解
递归函数的实现
int addTo(int paraN)
{
int tempSum;
printf("entering addTo(%d)rn", paraN);
if (paraN <= 0)
{
printf(" return 0rn");
return 0;
} else {
tempSum = addTo(paraN - 1) + paraN;
printf(" return %drn", tempSum);
return tempSum;
}// Of if
}
测试
void addToTest()
{
int n, sum;
printf("---- addToTest begins. ----rn");
n = 5;
sum = addTo(n);
printf("rn0 adds to %d gets %d.rn", n, sum);
n = 1;
sum = addTo(n);
printf("rn0 adds to %d gets %d.rn", n, sum);
n = -1;
sum = addTo(n);
printf("rn0 adds to %d gets %d.rn", n, sum);
printf("---- addToTest ends. ----rn");
}
主函数部分
int main()
{
addToTest();
}
结果
---- addToTest begins. ---- entering addTo(5) entering addTo(4) entering addTo(3) entering addTo(2) entering addTo(1) entering addTo(0) return 0 return 1 return 3 return 6 return 10 return 15 0 adds to 5 gets 15. entering addTo(1) entering addTo(0) return 0 return 1 0 adds to 1 gets 1. entering addTo(-1) return 0 0 adds to -1 gets 0. ---- addToTest ends. ----



