1. 程式人生 > 其它 >藍橋杯【FJ的字串】Java

藍橋杯【FJ的字串】Java

技術標籤:藍橋字串演算法java

文章目錄

問題描述

FJ在沙盤上寫了這樣一些字串:
A1 = “A”
A2 = “ABA”
A3 = “ABACABA”
A4 = “ABACABADABACABA”
… …
你能找出其中的規律並寫所有的數列AN嗎?

輸入格式

僅有一個數:N ≤ 26。

輸出格式

請輸出相應的字串AN,以一個換行符結束。輸出中不得含有多餘的空格或換行、回車符。

樣例輸入

3

樣例輸出

ABACABA

解題思路

通過觀察A1~A4,可得出規律:A1為第1個英文字母,A2為A1 第2個英文字母 A1

,A3為A2 第3個英文字母 A2,以此類推,An為An-1 第N個英文字母 An-1。所以可以採用一個字串陣列s[]來記錄A1~An的值,首先令陣列第一個元素A1即s[0]=“A”,之後通過迴圈將其後的每一個元素賦上相應的值,s[i]=s[i-1]+第i個英文字母+s[i-1],最後輸出s[n-1]即可。
:為節省記憶體空間,陣列長度我們定義為n即可,無需定義為26,因為答案只需輸出AN的值,即s[n-1]。勤儉持家,從你我做起ヾ(◍°∇°◍)ノ゙

程式碼實現

import java.io.*;

public class Main {
	public static void
main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); String[] s = new String[n]; s[0] = "A"; for (int i = 1; i < n; ++i) { s[i] = s[i - 1] + (char) ('A' + i) + s[i - 1]; }
System.out.println(s[n - 1]); } }

執行截圖

在這裡插入圖片描述