问题:15 FJ的字符串
问题描述:
FJ在沙盘上写了这样一些字符串:
A1 = “A”
A2 = “ABA”
A3 = “ABACABA”
A4 = “ABACABADABACABA”
… …
你能找出其中的规律并写所有的数列AN吗?
输入说明 :
仅有一个数:N ≤ 20。
输出说明 :
请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
输入范例 :
3
输出范例 :
ABACABA
思路:
这题基础题写过一次,因此这次给出两个方法
代码实现:
//递归
#include<bits/stdc++.h>
using namespace std;
string Res(int k)
{
string str(1,'A'+k-1);
if(k==0)
{
return "";
}
return Res(k-1) + str + Res(k-1);
}
int main()
{
int n;
cin>>n;
cout<<Res(n)<<endl;
}
//dfs
#include<bits/stdc++.h>
using namespace std;
int N;
vector<string> res;
void dfs(int t)
{
if(t==N+1)
{
return;
}
else
{
string temp(1,'A'+t-1);
string temp1=res[res.size()-1]+ temp +res[res.size()-1];
res.push_back(temp1);
dfs(t+1);
}
}
int main()
{
cin>>N;
res.push_back("");
dfs(1);
cout<<res[N]<<endl;
}