#include<iostream>
using namespace std;
int add(int c)
{
int a=0;
c&&(a=add(c-1));//递归循环,直到传入c的值为0则结束循环
cout<<c+a<<endl;
return c+a;
}
int main()
{
add(10);
return 0;
}
运行结果:
0
1
3
6
10
15
21
28
36
45
55
记录1: 可以利用逻辑与(&&)的运算特性,实现if的功能:c&&(a=add(c-1));
记录2:递归运行是:每一层都不会立即返回,直到最后一层(下一层因为条件为假,不再调用),才一层一层的返回值。
记录3:上面的 c&&(a=add(c-1)); 可以改为:(!c)||(a=add(c-1)); 利用逻辑或实现同样的效果。
网友评论