ping 發問時間: 電腦與網際網路程式設計 · 1 0 年前

程式 解釋

藍色字體是我不懂的地方 可以解釋依下嗎?!

為什麼會出現兩個2?

程式結果:

第1階舞步=>1 1

第2階舞步=>1 2 2 1

謝謝參觀

程式:

import java.util.*;

public class PM6_2{

public static void main(String args[]){

Scanner keyin = new Scanner(System.in);

int n;

System.out.printf("== 曼波舞步表演系統 ==\n");

System.out.printf("請輸入表演級數=>");

n= keyin.nextInt();

for (int k=1; k<=n; k++){

System.out.printf("\n第%d階舞步=>",k);

front_dance(k);

back_dance(k);

}

System.out.printf("\n謝謝參觀");

}

static void front_dance(int k){

if (k <= 1 )

System.out.printf("1 ");

else{

front_dance(k-1);

System.out.printf("%d ",k);

}

}

static void back_dance(int k){

if (k<=1)

System.out.printf("1 ");

else{

System.out.printf("%d ",k);

back_dance(k-1);

}

}

}

已更新項目:

程式顯示結果:

== 曼波舞步表演系統 ==

請輸入表演級數=>2

第1階舞步=>1 1

第2階舞步=>1 2 2 1

謝謝參觀

1 個解答

評分
  • 1 0 年前
    最佳解答

    for (int k=1; k<=n; k++){

    System.out.printf("\n第%d階舞步=>",k);

    //↑ 等於System.out.print("\n第"+k+"階舞步=>");

    front_dance(k);

    //↑使用front_dance函式並傳入k值

    back_dance(k);

    //↑使用back_dance函式並傳入k值

    }

    System.out.printf("\n謝謝參觀");

    }

    static void front_dance(int k){

    //↑宣告一個名為front_dance的函式且不回傳,使用時需傳入一個整數型態的值

    if (k <= 1 )

    System.out.printf("1 ");

    //↑如果傳入的值小於1或者等於1就印出1

    else{

    front_dance(k-1);

    System.out.printf("%d ",k);

    //↑如果大於1 就印出k的值 且再執行front_dance(也就是自己)並傳入k-1的值)

    }

    }

    static void back_dance(int k)

    //至於跟上面的一樣意思

還有問題?馬上發問,尋求解答。