关于递归求自然数列和
求自然数列N各位的和如N==4,sum=4+3+2+1=10;代码如下:
4 int main(void)
5 {
6 printf("fun:%d\n",func(4));
7 }
8
9
10 int func(int num)
11 {
12 if(num==0)
13 return 0;
14 return num+func(num-1);
15 }
代码的运行结果是:10,这是正确的。
将第14行改为return num+func(--num);后结果输出是错误的6,这是为什么?
在棧中调用时 num-1 与 --num不是一样的吗?
求各位大神帮忙解答一下。
系统是linux:redhat 7.2
内核版本:3.10.0-327.el7.x86_64
编辑器用的是VIM