106年鐵路特考員級程式設計概要

三、下列程式能將輸入的字串 input = “abcdef”,反向列印為 “fedcba”。試以遞迴的方式撰寫副程式 stringReverseHelper,且其參數宣告必須與stringReverse 方法內的呼叫一致。(25分)

public class Reverse

{

public static void stringReverse(char[ ] array)

{

stringReverseHelper( array, 0 );

System.out.println( );

}

// stringReverseHelper 副程式的放置處

public static void main(String args[ ])

{

String input = “abcdef”;

stringReverse(input.toCharArray( ));

} // end main

} // end class Reverse

答:

package test1_1;

public class Reverse {

    // 使用這個方法來反轉字元陣列

    public static void stringReverse(char[] array) {

        stringReverseHelper(array, 0);

        System.out.println( ); // 印出一個換行,使結果更為清晰

    }

    /**

     * 一個遞迴的副程式來反轉字元陣列

     * @param array 要反轉的字元陣列

     * @param index 當前遞迴處理的字元的索引

     */

    private static void stringReverseHelper(char[ ] array, int index) {

        // 如果索引已經到達陣列的結尾,則返回

        if (index == array.length) {

            return;

        }

        // 對下一個字元進行遞迴呼叫

        stringReverseHelper(array, index + 1);

        // 當遞迴呼叫完成,輸出當前索引的字元

        System.out.print(array[index]);

    }

    public static void main(String args[]) {

        String input = "abcdef";

        stringReverse(input.toCharArray( )); // 將字串轉換為字元陣列,並且反轉輸出

    } // end main

} // end class Reverse

執行結果:

fedcba

 

 

arrow
arrow
    文章標籤
    鐵路特考員級程式設計概要
    全站熱搜

    jacksaleok 發表在 痞客邦 留言(0) 人氣()