整理五個 Java 控制台小程式,適合初學者熟悉迴圈、遞歸、陣列操作與字串處理。所有功能整合在單一 Test 類中,透過 Scanner 互動輸入輸出。
4 * 3 * 2 * 1 = 24 格式。import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 1. 遞歸階乘
System.out.print("請輸入階乘起始數: ");
long n = in.nextLong();
System.out.println(recurrence(n));
// 2. 兩數和為 13
getForString();
// 3. 九九乘法表
printString();
// 4. 陣列排序
int[] arr = new int[3];
System.out.println("請輸入 3 個整數:");
for (int i = 0; i < 3; ++i) arr[i] = in.nextInt();
compute(arr);
// 5. 字串反轉
in.nextLine(); // 消耗換行
System.out.print("請輸入欲反轉字串: ");
getString(in.nextLine());
}
// 1. 遞歸階乘
private static long recurrence(int n) {
if (n == 1) { System.out.print("1 = "); return 1; }
System.out.print(n + " * ");
return n * recurrence(n - 1);
}
// 2. 0~9 找和為 13
private static void getForString() {
System.out.println("0~9 相加為 13 的組合:");
for (int a = 0; a <= 9; ++a)
for (int b = 0; b <= 9; ++b)
if (a + b == 13) System.out.printf("a=%d b=%d%n", a, b);
}
// 3. 九九乘法表
private static void printString() {
System.out.println("九九乘法表:");
for (int i = 1; i <= 9; ++i) {
for (int j = 1; j <= i; ++j)
System.out.printf("%d*%d=%-3d", j, i, i*j);
System.out.println();
}
System.out.println("九九乘法表結束!");
}
// 4. 陣列排序 (冒泡降序)
private static int compute(int[] a) {
System.out.println("排序結果:");
for (int i = 0; i < a.length; ++i)
for (int j = 0; j < a.length; ++j)
if (a[i] > a[j]) { int t = a[i]; a[i] = a[j]; a[j] = t; }
for (int v : a) System.out.print(v + ",");
System.out.println("排序結束!");
return Math.abs(a[0] - a[a.length - 1]);
}
// 5. 字串反轉
private static void getString(String s) {
System.out.print("反轉結果: ");
if (s != null && !s.isEmpty())
for (int i = s.length() - 1; i >= 0; --i) System.out.print(s.charAt(i));
System.out.println();
}
}
請輸入階乘起始數: 4 4 * 3 * 2 * 1 = 24 0~9 相加為 13 的組合: a=4 b=9 a=5 b=8 ... 九九乘法表: 1*1=1 1*2=2 2*2=4 ... ... 請輸入 3 個整數: 3 6 8 排序結果: 8,6,3,排序結束! 請輸入欲反轉字串: sdee333 反轉結果: 333eeds
length()-1 遞減至 0。建議初學者手敲一次,體會控制流與輸出格式化細節。