蓝桥杯 FJ的字符串–C语言算法
问题描述
FJ在沙盘上写了这样一些字符串:
A1 = “A”
A2 = “ABA”
A3 = “ABACABA”
A4 = “ABACABADABACABA”
… …
你能找出其中的规律并写所有的数列AN吗?
输入格式
仅有一个数:N ≤ 26。
输出格式
请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
样例输入
3
样例输出
ABACABA
基本思路:
字符串的连接strcat,从第二个字符串开始,每一个字符串均是前一个字符串 + 一个新字符 + 前一个字符串
#include<stdio.h>
#include<string.h>
int main(){
int n,i;
char a[200000]={"A"};//初始化字符串
char b[200000];
char c[2];
scanf("%d",&n);
if(n==1)//单独讨论仅一个字符的情况
printf("%s",a);
else{
for(i=1;i<n;i++){
c[0]=65+i;//新的字符
strcpy(b,a);//保存前一个字符串的内容
strcat(a,c);//加入新字符
strcat(a,b);//加入前一个字符串
}
printf("%s",a);
}
return 0;
}