问题描述
FJ在沙盘上写了这样一些字符串:
A1 = “A”
A2 = “ABA”
A3 = “ABACABA”
A4 = “ABACABADABACABA”
… …
你能找出其中的规律并写所有的数列AN吗?
输入格式
仅有一个数:N ≤ 26。
输出格式
请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
这道题首先给人的感觉就是利用递归,但是我对递归的理解很少,递归时的具体细节我一会就被绕晕了,这道题我只能说是从宏观上进行切入,从微观上进行的递归我确实容易晕(捂脸),宏观上就是字符串的最中间的字符是随着行数的增加而逐渐递增的,而关于中间字符对称的两边的字符串又是同样的规律,这本身就是递归的思想,代码如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
FJ(n);
}
public static void FJ(int n) {
if (n == 1 && n > 0) {
System.out.print("A");
} else {
FJ(n - 1);
System.out.print((char) (n + 64));
FJ(n - 1);
}
}
}
代码没几行,但是涉及递归的话就有点麻烦了,递归真的讲不明白,真需要大家一起来悟(阿弥陀佛)。
加油!!!
奥利给!!!