我一直堅持這個星期,我不知道如何做到這一點。我只想要最長的頭。我嘗試了無數次,我只是不知道自己做錯了什麼。計數最長的頭
public class LongestStreak extends ConsoleProgram
{
public static final int FLIPS = 100;
int currentRun;
int runStart;
int maxRun;
public void run()
{
double heads = 0;
double tails = 0;
for(int i = 0; i < FLIPS; i++)
{
if(Randomizer.nextBoolean())
{
System.out.println("Heads");
heads++;
currentRun++; // use ++ in preference to +=1, and this should be before maxRun test
if (maxRun < currentRun) {
maxRun = currentRun;
runStart = currentRun - i; // this will produce a 1-based position
} else {
currentRun = 0;
}
}
else
{
System.out.println("Tails");
tails++;
}
}
System.out.println(FLIPS);
}
}
你從不打印連勝。而是打印出循環的邊界。 –
當尾部翻轉時,您應該考慮將currentRun重置爲0。 – Compass
啊,所以我改變它打印出maxRun,但maxRun似乎只是所有的頭。在100次翻轉中,有51個頭。我不想那樣。 –