资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
FJ在沙盘上写了这样一些字符串:
A1 = “A”
A2 = “ABA”
A3 = “ABACABA”
A4 = “ABACABADABACABA”
… …
你能找出其中的规律并写所有的数列AN吗?
输入格式
仅有一个数:N ≤ 26。
输出格式
请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
样例输入
3
样例输出
ABACABA
观察题目,得出规律
第i个串为(i-1)串+第i个大写字母+(i-1)串
所以A5=A4+‘E’+A4
A5=“ABACABADABACABAEABACABADABACABA”
#include<iostream>
using namespace std;
int main()
{
int n;
cin >> n;
string lst1="A";//用于保存第i个串
string lst2;//辅助串
for (int i = 1; i < n;i++)
{
char ch = 'A' + i;
lst1.push_back(ch);//将'A'+i个字符添加到字符串
lst2 = lst1 + lst1;//得到第i个串
lst2.erase(lst2.end()-1);//删除末尾多余字符
lst1 = lst2;//将新串拷贝到lst1方便下一次使用
}
cout << lst1 << endl;
system("pause");
return 0;
}