2016-04-30 59 views
-1

所以,現在我編輯的代碼,當有四個時,計算行中的頭數和五個連續時的頭數。我有以下代碼可以正確運行,但它只計算四個數字而不是五個數字。誰能幫我?我複製並粘貼了我的代碼之後運行的結果。硬幣翻轉代碼 - 試圖數出字符串輸出

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;'硬幣過來的頭:'首長++;' – Laurel

+1

你需要一些變量與第一 –

+0

算我怎麼能做出HS和TS可數如果是有道理的?我需要寫些什麼才能使結果成爲字符串 – 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分爲兩個不同的字符串,然後使用.length()作爲值。 –

+0

@Alex變量可能有點誤導,但headCount會計算「hhhh」和「hhhhh」的數量。使用headCount變量的打印功能顯示四個和五個連續的頭部翻轉的數量。 – Clint