题目
tips:
1、巧思:类似于将输入的字符串按一个上一个下输出;所以可以用递归+栈思考,第一个输入的直接输出,第二个存下来存进栈,如果没有字符串了,就可以输出第二个字符串,如果还有字符串则需让第二个字符串在栈里待一会,等输出第三个串之后回溯到她那再输出第二个串;由此思想可迭代,后面每一个都是这么想的,就是说第三个串就相当于刚刚思考下的第一个串一样,所以当判断第三个串还有没有的时候可以用递归,就是print(n);就是一输出一存一输出一存.......
2.这题还可以用普通方法,都存入字符串数组里,只不过可以用for循环存入,还要分n的奇数偶数。
答案
#include <iostream>
#include<cmath>
#include<cstdio>
using namespace std;void print(int n)
{string s; cin >> s;cout << s << endl;if (--n){cin >> s;if (--n){print(n);}cout << s << endl;}
}
int main()
{int n, loop = 0;cin >> n;while (n){cout << "SET " << ++loop << endl;print(n);cin >> n;}return 0;
}