问题描述
FJ在沙盘上写了这样一些字符串:
A1 = “A”
A2 = “ABA”
A3 = “ABACABA”
A4 = “ABACABADABACABA”
… …
你能找出其中的规律并写所有的数列AN吗?
看到这种有规律的题目,我首先想到的是用递归方法。
递归函数,里面有注释,可以看看。
public static String FJ(int in){ //递归结束条件 if (in ==1){ return "A"; } //使用char转换 int a = 64; int sum = a +in; //保存第一次进来的值 char first=(char)sum; //每次递减,再进入函数 in--; FJ(in); //相加每次递归与第一次进来的值,根据规律再次加一次 String new1 = FJ(in)+first+FJ(in); return new1; }
完整代码
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int in = sc.nextInt(); System.out.println(FJ(in)); } public static String FJ(int in){ //递归结束条件 if (in ==1){ return "A"; } //使用char转换 int a = 64; int sum = a +in; //保存第一次进来的值 char first=(char)sum; //每次递减,再进入函数 in--; FJ(in); //相加每次递归与第一次进来的值,根据规律再次加一次 String new1 = FJ(in)+first+FJ(in); return new1; } }