基础练习 FJ的字符串

问题描述
  FJ在沙盘上写了这样一些字符串:
  A1 = “A”
  A2 = “ABA”
  A3 = “ABACABA”
  A4 = “ABACABADABACABA”
  … …
  你能找出其中的规律并写所有的数列AN吗?
输入格式
  仅有一个数:N ≤ 26。
输出格式
  请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
样例输入
3
样例输出
ABACABA
 
下面是已经测试通过的java代码
解题思路是使用递归,从题目中可以很明显的看出,随着n的增加,后一个字符串中包含了前一个字符串,并且他们的构成结构是一样的,所以可以使用递归进行简单的解决
import java.util.Scanner;

public class Main {
    static char [] ch = new char[27];
    static String recursion(int n){
        if(n==1)
            return ch[n]+"";
        return recursion(n-1) + ch[n] + recursion(n-1);
    }
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        ch[1]='A';
        for(int i=2;i<27;i++){
            ch[i] = ch[i-1];
            ch[i]++;
        }
        int n = scanner.nextInt();

        System.out.println(recursion(n));
    }
}
//使用递归进行解决

 

 

posted on 2018-01-19 12:01  ZhangのBlog  阅读(287)  评论(0编辑  收藏  举报