问题描述
FJ在沙盘上写了这样一些字符串:
A1 = “A”
A2 = “ABA”
A3 = “ABACABA”
A4 = “ABACABADABACABA”
… …
你能找出其中的规律并写所有的数列AN吗?
输入格式
仅有一个数:N ≤ 26。
输出格式
请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
样例输入
3
样例输出
ABACABA
解题思路
通过观察A1~A4,可得出规律:A1为第1个英文字母,A2为A1 第2个英文字母 A1,A3为A2 第3个英文字母 A2,以此类推,An为An-1 第N个英文字母 An-1。所以可以采用一个字符串数组s[]来记录A1~An的值,首先令数组第一个元素A1即s[0]=“A”,之后通过循环将其后的每一个元素赋上相应的值,s[i]=s[i-1]+第i个英文字母+s[i-1],最后输出s[n-1]即可。
注:为节省内存空间,数组长度我们定义为n即可,无需定义为26,因为答案只需输出AN的值,即s[n-1]。勤俭持家,从你我做起ヾ(◍°∇°◍)ノ゙
代码实现
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
String[] s = new String[n];
s[0] = "A";
for (int i = 1; i < n; ++i) {
s[i] = s[i - 1] + (char) ('A' + i) + s[i - 1];
}
System.out.println(s[n - 1]);
}
}