-1

コイントスをシミュレートし、「表」を 3 回連続で出すのに必要なトス回数を出力するプログラムを Java で作成します。このプログラムは、トスをシミュレートした「表」と「裏」も画面に出力します。たとえば、プログラムは次のような出力を生成する場合があります。

  • 例 1: HTHHH
  • 5
  • 例 2: TTTHTHHTTTTHHH
  • 14

これを実行すると、連続して H が出力され、無限に実行されます。裏返しではなく、表のみです。誰かが私のコードを修正するのを手伝ってくれますか お願いします.....ありがとう。

私のコード:

    import java.util.*;

public class threeHeads {

    public static void main(String[] args) {

        boolean first = false;
        boolean second = false;
        int count = 0;

        Random random = new Random();

          while(true){

                int n = random.nextInt(2) + 1; //1 is Heads, 2 is Tails 

                if (n == 1){
                    System.out.println("H");  
                    count++;

                if (first == false){
                    first = true;
                } else if (second == false){
                    second = true;
                } else if (second == true){
                    break;
                } 
                }
                else {
                    System.out.println("T");
                    first = false;
                    second = false;
                    count++;
                  } 

            }

          if (count == 3){
                System.out.println(count);
            }

    }
}
4

1 に答える 1

1

このコードを試して、目的が達成されるかどうかを確認してください

public class flipper {
    public static void main(String[] args) {
        int heads = 0;
        int count = 0;
        while (heads < 3) {
            int flip = (int)(Math.random() * 2);  // range [0, 1]
            count++;
            if (flip == 0) {
                System.out.print("H");
                heads++;
            } else {
                System.out.print("T");
                heads = 0;
            }
        }
        System.out.println("\nIt took " + count + " flips to achieve three heads in a row");
    }
}
于 2016-12-09T00:24:44.680 に答える