天天看點

題目 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的字元串