例如:分别输入x和y,比较循环输出和递归输出的时间复杂度情况(递归调用中会用到m--)
#include <iostream>
using namespace std;
void printN(int n) {
for (int i=1; i <= n; i++)
cout << i << endl;
return;
}
void printM(int m) {
if (m) {
printM(m-1); //这里不可以用m--
//原因:m--是在执行完printM(m-1);这条语句之后才自减1,
// 但由于递归调用,使得没办法执行完这条语句就跳走了,
// 因而会导致程序死循环而崩溃。
cout << m << endl;
}
return;
}
int main() {
int x, y;
cin >> x;
printN(x);
cin >> y;
printM(y);
system("PAUSE");
return 0;
}