基础练习 FJ的字符串
时间限制:1.0s 内存限制:512.0MB
问题描述
FJ在沙盘上写了这样一些字符串:
A1 = “A”
A2 = “ABA”
A3 = “ABACABA”
A4 = “ABACABADABACABA”
… …
你能找出其中的规律并写所有的数列AN吗?
输入格式
仅有一个数:N ≤ 26。
输出格式
请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
样例输入
3
样例输出
ABACABA
想法:
AN字符串
A1=A 初始化
A2=A1+(char)(‘A’+1)+A1;
A3=A2+(char)(‘A’+2)+A2;
…以此类推
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int index[]=new int[n];
index[0]=1;
for(int x=1;x<n;x++)
index[x]=index[x-1]*2+1;
char []s=new char[index[n-1]];
s[0]='A';
for(int x=1;x<n;x++) {
for(int y=index[x-1];y<index[x];y++) {
if(y==index[x]/2)
s[y]=(char)('A'+x);
else
s[y]=s[index[x]-y-1];
}
}
for(char c:s)
System.out.print(c);
}
}