题目 1461: [蓝桥杯][基础练习VIP]FJ的字符串

题目描述

FJ在沙盘上写了这样一些字符串:

A1 = “A”

A2 = “ABA”

A3 = “ABACABA”

A4 = “ABACABADABACABA”

… …

你能找出其中的规律并写所有的数列AN吗?
输入
仅有一个数:N ≤ 26。
输出
请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
样例输入
3
样例输出
ABACABA

解题思路

这道题要找规律,会发现其实第n个字符串 = 第(n-1)的字符串+字母+第(n-1)的字符串。

所以这道我们可以通过递归或者循环来解决

代码如下

方法一:我建议用这种方法,逻辑很清晰

import java.util.Scanner;

/**
 * fj字符串
 * @author hf
 *
 */
public class Cyyw1461 {
     
	public static void main(String[] args) {
     
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		System.out.println(fj(n));
	}
	
	/**
	 * 递归找规律
	 * @param n
	 * @return
	 */
	public static String fj(int n) {
     
		if (n == 1) {
     
			return "A";
		}
		return fj(n-1)+(char)('A'-1+n)+fj(n-1);
	}
}

方法二:这个貌似速度比较慢

import java.util.Scanner;

/**
 * 
 * @author hf
 *
 */
public class Cyyw1461 {
     	
	public static void main(String[] args) {
     
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		String arrStr[] = new String[28];
		arrStr[1] = "A";
		for (int i = 2; i < arrStr.length; i++) {
     
			arrStr[i] = arrStr[i-1]+String.valueOf((char)('A'+i-1))+arrStr[i-1];
		}
		System.out.println(arrStr[n]);
	}
}

运行实例

题目 1461: [蓝桥杯][基础练习VIP]FJ的字符串_第1张图片

你可能感兴趣的:(java,字符串,算法,java)