阿摩線上測驗 登入

申論題資訊

試卷:108年 - 108 普考 程式設計概要#77670
科目:程式設計
年份:108年
排序:0

申論題內容

二、下列為 Reverse class 的程式規範與其執行結果,試以遞迴(recursive) 的方式完成副程式 reverse(int[] arr, int x),撰寫時,必須使用相同的參數 名稱與資料型態。reverse(int[] arr, int x)會回傳一個倒過來擺置的整數 串:arr[n-1], arr[n-2], … arr[x+1], arr[x],假設 arr 內共有 n 個元素,而 且 x <= n。(25 分)

5d2bdbac3e8b3.jpg

詳解 (共 2 筆)

詳解 提供者:hchungw
以下是Java類別Reverse中reverse(int[] arr, int x)方法的遞迴實現方式,這個方法將返回一個字符串,內容是從陣列arr的末尾開始至索引x的部分倒序排列:

public static String reverse(int[] arr, int x) {
    // 基底情況:如果x是陣列的最後一個元素,則將其轉換為字符串返回。
    if (x == arr.length - 1) {
        return Integer.toString(arr[x]);
    }
    
    // 遞迴情況:獲得陣列其餘部分的倒序,然後將當前元素附加在其後。
    return reverse(arr, x + 1) + " " + arr[x];
}
這個實現檢查x是否位於陣列的末端(基底情況),如果是的話,就將x處的值作為字符串返回。否則,它會以x + 1調用自己,以獲得剩餘陣列的倒序字符串,然後將當前x處的值加到這個字符串上,中間以空格分隔。遞迴會持續進行,直到達到基底情況。
 
詳解 提供者:skybe2238