FJ的字符串
Time Limit:1000MS Memory Limit:0KB 64bit IO Format:%lld & %llu
问题描述
FJ在沙盘上写了这样一些字符串:
A1 = “A”
A2 = “ABA”
A3 = “ABACABA”
A4 = “ABACABADABACABA”
… …
你能找出其中的规律并写所有的数列AN吗?
输入格式
有多组测试数据,每组测试数据仅有一个数:N ≤ 26。
输出格式
请输出相应的字符串AN。输出中不得含有多余的空格或换行、回车符。
样例输入
3
样例输出
ABACABA
若用二维数组存储时间会超限。
#include<stdio.h>
#include<string.h>
char a[100000000];
char b[100000000];
int main()
{
int i,j,k,l;
int n;
while(~scanf("%d",&n))
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
a[0]='A';
b[0]='A';
for(i=1;i<n;i++)
{
strcpy(a,b); //把b给a;
l=strlen(a); //测a的长度
a[l]=i+'A'; //在a的后面加上新的字母。
for(j=l+1,k=0;j<2*l+1;k++,j++) //再将b串连接到a后面
a[j]=b[k];
strcpy(b,a); //把a给b进行下一次循环。
}
printf("%s\n",a);
}
return 0;
}