题目
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;
}