#include <stdio.h>
#include <stdlib.h>
int sum(int a, int b)
{
if (a == b)
return 0;
else
return a + sum(a + 1, b);
}
int main()
{
printf("%d\n", sum(3, 7));
system("pause");
}
答案 0 :(得分:0)
sum(a,b)计算a和b-1(包括)之间所有整数的总和。即,sum(3,7)= 3 + 4 + 5 + 6
编辑:为什么会这样?因为当您使用参数a和b调用函数时,您可以按如下方式分解调用:
sum(a, b)
a + sum(a+1, b)
a + (a+1) + sum(a+2, b)
a + (a+1) + (a+2) + ... + sum(b,b)
并且在这种情况下,由于sum(b,b)返回0,您可以(直观地)看到该函数对从a到b-1的所有数字求和。我希望它现在能更有建设性地发挥作用。
答案 1 :(得分:0)
最初我们有:总和(3,4) 然后:3 +和(4,7),3 + 4 +和(5,7),3 + 4 + 5 +和(6,7), 最后:3 + 4 + 5 + 6 +总和(7,7)。
sum(7,7)为0,结果为:18。