int factorial (int val)
{
if (val > 1)
return factorial (val - 1) * val;
return 1;
}
需要注意传参时,val的设定不能过大,防止溢出。
且传入的值必须是 val-1而非val--,如果传入val--,每次factorial的递归调用都调用val,所有val值永远不会减到<1,函数将不段调用自身直到程序栈空间耗尽为止,段错误了。
#include <iostream>
#include <vector>
using namespace std;
void print_vec (const vector<string> &v, int i)
{
if (i == v.size()) return ;
cout << v[i++] << " ";
print_vec(v, i);
}
int main()
{
int i=0;
vector<string> v{"hello", "world", "your", "wu", "is", "too", "bigbig" };
print_vec(v, i);
return 0;
}
#include <iostream>
#include <vector>
using namespace std;
递归输出vector对象的内容
{
if (i == v.size()) return ;
cout << v[i++] << " ";
print_vec(v, i);
}
int main()
{
int i=0;
vector<string> v{"hello", "world", "your", "wu", "is", "too", "bigbig" };
print_vec(v, i);
return 0;
}