问题描述
FJ在沙盘上写了这样一些字符串:
A1 = “A”
A2 = “ABA”
A3 = “ABACABA”
A4 = “ABACABADABACABA”
… …
你能找出其中的规律并写所有的数列AN吗?
输入格式
仅有一个数:N ≤ 26。
输出格式
请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
样例输入
3
样例输出
ABACABA
分析:
1 > ‘A’ ANSIC码值为65
2 > ‘B’ ANSIC码值为66
…
规律:
由输入样例可以得出输出结果为
原结果+新输入数字的ANSIC所对应的字母+原结果
An+1与An相比,加了一个字母,再加上An(字母的ASCII码值为64+n)。 即 An+1 = An + 字母 + An
代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
f(n);
}
static void f(int n) {
if (n == 1)
System.out.print('A');
else {
f(n - 1);// 前半部分
System.out.print((char) ('A' + n - 1));
f(n - 1);// 后半部分
}
}
}