2016-04-30 8 views
-1

これで、5つの行に4つのヘッドがある場合に、その行のヘッドの数をカウントするコードを編集しました。私は正しく実行される次のコードを持っていますが、それはfivesの数ではなく4つの数を数えるだけです。誰でも助けてくれますか?自分のコードの後ろにトレイルが走ったときに得た結果をコピーして貼り付けました。コインフリップコード - 文字列をカウントしようとしました。

public class Flip { 

    public static void main(String[] args) 
    { 
     final int FLIPS = 100; 
    int heads = 0; 
    int consecCountfour = 0; 
    int consecCountfive = 0; 
    System.out.println("Trail Tosses:"); 
    for (int i = 1; i<= FLIPS; i++) 
    { 
    if (Math.random() < 0.5) { 
    System.out.print("h"); 
    heads++; 
    } 
    else {    
     System.out.print("t"); 
    if (heads == 4) { consecCountfour++; } 
    heads = 0; 

    if (heads == 5) { consecCountfive++; } 
    heads = 0; 
    } 



    } 
    System.out.println("\n"); 
    System.out.print("Count hhhh:"+ consecCountfour); 
System.out.print("  Count hhhhh:" + consecCountfive); 
    } 
} 
+3

'ヘッド= 0 int型;'コインがヘッドとして起動します: 'ヘッド++;' – Laurel

+1

あなたはそれが理にかなっている場合、私はHSとtsは可算作ることができるか最初 –

+0

とカウントするようにいくつかの変数が必要ですか?私の結果を数える文字列にするために何を書かなければならないでしょうか。 – Alex

答えて

0

適切な解決策は、テールが反転されたときに0に設定された連続ヘッドの数をカウントすることです。

final int FLIPS = 100; 
int heads = 0; 
int consecCount = 0; 
for (int i = 1; i<= FLIPS; i++) 
{ 
    if (Math.random() < 0.5) { 
     System.out.print("h"); 
     heads++; 
    } 
    else {    
     System.out.print("t"); 
     if (heads == 4 || heads == 5) { consecCount++; } 
     heads = 0; 
    } 
} 
System.out.print(consecCount); 
+0

コードがうまく対応してくれてありがとう!どのように私は連続した "hhhh"と "hhhhh"の番号を印刷することができますか? – Alex

+0

@Alex hとtを2つの異なる文字列にソートし、その値に.length()を使用します。 –

+0

@Alex変数は少し誤解を招くかもしれませんが、headCountは "hhhh"と "hhhhh"の数を数えます。 headCount変数を指定したprint関数を使用して、4,5つの連続したヘッドフリップの数を表示します。 – Clint

関連する問題