蓝桥:FJ的字符串
题目
问题描述
FJ在沙盘上写了这样一些字符串:
A1 = “A”
A2 = “ABA”
A3 = “ABACABA”
A4 = “ABACABADABACABA”
… …
你能找出其中的规律并写所有的数列AN吗?
输入格式
仅有一个数:N ≤ 26。
输出格式
请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
样例输入
3
样例输出
ABACABA
分析
1 A
2 ABA
3 ABACABA
4 ABACABADABACABA
就是输入1234对应的是ABCD 最大能到多少
之后 按递推,都是前面的数加上后面的最大的数之后再加上上一个数
5.ABACABADABACABAEABACABADABACABA
如果按递归的思想就是
我第一个输入的是A
第二个函数是ABA
先调用前一个数是A,后来再加上后面的字符,再调用A
不对,递归思想应该是
例如输入2
先调用上一个,再输入,再调用下一个
分析得出
A2 = A1 B A1
A3 = A2 C A2
A4 = A3 D A3
代码
import java.util.Scanner;
public class FJ的字符串 {
public static void main(String[] args){
Scanner sc= new Scanner(System.in);
int n=sc.nextInt();
System.out.println(f(n));
}
public static String f(int n){
if(n==1){
return "A";
}else if(n<=26){
return f(n-1)+(char)('A'+n-1)+f(n-1);
}
return null;
}
}
总结
要学会运用递归,并且返回值和所用的返回类型要正确