1 编写一个递归函数,输出vector对象的内容。
#include<iostream>
#include<vector>
using namespace std;
int print(vector<int> vec,int n)
{
if(n==1)
{
cout<<vec[n-1]<<endl;
return 0;
}
else
{
print(vec,n-1);
cout<<vec[n-1]<<endl;
return 0;
}
}
int main()
{
vector<int> v={1,2,3,4,5,6,7,8,9,10};
print(v,10);
return 0;
}
结果如下:
1
2
3
4
5
6
7
8
9
10
2 在调用factorial函数时,为什么我们传入的值是val-1而非val--?
#include<iostream>
using namespace std;
int factorial(int val)
{
if(val>1)
return factorial(val-1)*val;
return 1;
}
int main()
{
int num;
cin>>num;
cout<<factorial(num)<<endl;
return 0;
}
结果如下:
输入:4
输出:24
如果改为val--,则会出现
输入:4
输出:段错误 (core dumped)