題目描述
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]);
}
}