试题 基础练习 FJ的字符串
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
FJ在沙盘上写了这样一些字符串:
A1 = “A”
A2 = “ABA”
A3 = “ABACABA”
A4 = “ABACABADABACABA”
… …
你能找出其中的规律并写所有的数列AN吗?
输入格式
仅有一个数:N ≤ 26。
输出格式
请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
样例输入
3
样例输出
ABACABA
这题很简单,本来我的想法是用一个数组存放26个因为字母,然后按照上面的规律 比如 A3=A2CA2 A4=A3DA3
用递归。后来觉得写26个字母放数组太麻烦了,有ACSII码表示字母
import java.util.Scanner;
public class FJ的字符串 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int n = in.nextInt();
String str = getAn(n);
System.out.print(str);
}
public static String getAn(int n) {
// String [] Arr=new String[] {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
if(n==1) {
return "A";
}
else {
return getAn(n-1)+(char)(64+n)+getAn(n-1);
}
}
}
public static String getAn(int n) {
String [] Arr=new String[] {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
if(n==1) {
return "A";
}
else {
return getAn(n-1)+Arr[n-1]+getAn(n-1);
}
}
}