试题 基础练习 FJ的字符串

问题描述
  FJ在沙盘上写了这样一些字符串:
  A1 = “A”
  A2 = “ABA”
  A3 = “ABACABA”
  A4 = “ABACABADABACABA”
  … …
  你能找出其中的规律并写所有的数列AN吗?
输入格式
  仅有一个数:N ≤ 26。
输出格式
  请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
样例输入
3
样例输出
ABACABA
资源限制
时间限制:1.0s 内存限制:512.0MB

规律
从A2开始,之后的每个字符串都是等于前一项的字符串当作两边的子字符串,最中间的字符由用户输入的数字所决定,如:
试题 基础练习 FJ的字符串_第1张图片

代码块(加注释)

import java.util.Scanner;
public class Main {
     
	static int N;//存储用户输入的数字
	static String s;//s:表示数字N对应的字母
	public static void main(String[] args){
     
		Scanner sc = new Scanner(System.in);
		
		//N:用户输入的数字
		N = sc.nextInt();
		//传递参数,并打印结果
		System.out.println(f("", 0));
	}

	
	static String f(String str, int t){
     
		//递归出口:当t加到N时结束
		if(t > N-1)return str;
		
		//s:表示数字N对应字符串中最中间的那个字符
		s = (char)('A'+t)+"";
		//更新s两边的子字符串
		str = str+s+str;
		
		//递归
		return f(str, t+=1);
	}
}

在这里插入图片描述

你可能感兴趣的:(蓝桥杯-基础练习,java)