蓝桥杯之VIP试题 FJ的字符串
程序员文章站
2022-06-12 13:46:17
...
题目:VIP试题 FJ的字符串
问题描述
FJ在沙盘上写了这样一些字符串:
A1 = “A”
A2 = “ABA”
A3 = “ABACABA”
A4 = “ABACABADABACABA”
… …
你能找出其中的规律并写所有的数列AN吗?
输入格式
仅有一个数:N ≤ 26。
输出格式
请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
样例输入
3
样例输出
ABACABA
答案:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
// 输入行数n
int n = in.nextInt();
// 通过递归算法,获得AN字符串
System.out.println(getAN(n));
}
//写递归时,从简单的入手,把模型打出来,再带入更多的数进去验算;自己要知道递归的最底层的结果是什么;
//递归的下一层会带有递归的上一层的结果,例如:
// A1 = “A”
// A2 = “ABA”
// A3 = “ABACABA”
// 递归是独立的一个方法,用到return;通常第一层的结果就是递归最底层的结果。
private static String getAN(int i)
{
if (i == 1)
{
return String.valueOf((char)(64 + i));
}
return getAN(i - 1) + String.valueOf((char)(64 + i)) + getAN(i - 1);
}
}