十年一晃而过,十年前写的代码,依然可以帮助我前进!
package exercises.ch6Methods;
import java.util.*;
//JHTP Exercise 6.29 (Coin Tossing)
//by pandenghuang@163.com
/**
*
*6.29 (Coin Tossing) Write an application that simulates coin tossing.
*Let the program toss a coin each time the user chooses the “Toss Coin” menu option.
*Count the number of times each side of the coin appears. Display the results.
*The program should call a separate method flip that takes no arguments and returns a value from a Coin enum (HEADS and TAILS).
*[Note: If the program realistically simulates coin tossing, each side of the coin should appear approximately half the time.]
*
*/
public class CoinTossing {
//此算法基于本人2008年的抛硬币方法,https://blog.csdn.net/hpdlzu80100/article/details/2290653
public static boolean flip()
{
return Math.random()<0.5;
}
public static void main(String args[]) {
int input;
int heads =0;
int tails =0;
int counts =0;
String tossingResult;
Scanner scan=new Scanner(System.in);
do {
System.out.printf("抛硬币请输入1(输入-1退出):");
input = scan.nextInt();
if(input == -1)
{System.out.print("已退出程序。");
break;
}
if (flip())
{tossingResult = "正面";
counts++;
heads++;
}
else
{
tossingResult = "反面";
counts++;
tails++;
}
System.out.printf("本次抛硬币的结果是%s,截至目前为止,共抛出%d次,正面共计%d次,反面共计%d次", tossingResult, counts, heads, tails);
System.out.println();
} while (input != -1);
System.out.println("已退出程序。");
scan.close();
}
}
运行结果:
抛硬币请输入1(输入-1退出):1 本次抛硬币的结果是反面,截至目前为止,共抛出1次,正面共计0次,反面共计1次 抛硬币请输入1(输入-1退出):1 本次抛硬币的结果是正面,截至目前为止,共抛出2次,正面共计1次,反面共计1次 抛硬币请输入1(输入-1退出):1 本次抛硬币的结果是反面,截至目前为止,共抛出3次,正面共计1次,反面共计2次 抛硬币请输入1(输入-1退出):1 本次抛硬币的结果是正面,截至目前为止,共抛出4次,正面共计2次,反面共计2次 抛硬币请输入1(输入-1退出):1 本次抛硬币的结果是反面,截至目前为止,共抛出5次,正面共计2次,反面共计3次 抛硬币请输入1(输入-1退出):1 本次抛硬币的结果是正面,截至目前为止,共抛出6次,正面共计3次,反面共计3次 抛硬币请输入1(输入-1退出):1 本次抛硬币的结果是反面,截至目前为止,共抛出7次,正面共计3次,反面共计4次 抛硬币请输入1(输入-1退出):1 本次抛硬币的结果是正面,截至目前为止,共抛出8次,正面共计4次,反面共计4次 抛硬币请输入1(输入-1退出):1 本次抛硬币的结果是正面,截至目前为止,共抛出9次,正面共计5次,反面共计4次 抛硬币请输入1(输入-1退出):1 本次抛硬币的结果是反面,截至目前为止,共抛出10次,正面共计5次,反面共计5次 抛硬币请输入1(输入-1退出):1 本次抛硬币的结果是反面,截至目前为止,共抛出11次,正面共计5次,反面共计6次 抛硬币请输入1(输入-1退出):1 本次抛硬币的结果是正面,截至目前为止,共抛出12次,正面共计6次,反面共计6次 抛硬币请输入1(输入-1退出):1 本次抛硬币的结果是反面,截至目前为止,共抛出13次,正面共计6次,反面共计7次 抛硬币请输入1(输入-1退出):1 本次抛硬币的结果是反面,截至目前为止,共抛出14次,正面共计6次,反面共计8次 抛硬币请输入1(输入-1退出):1 本次抛硬币的结果是正面,截至目前为止,共抛出15次,正面共计7次,反面共计8次 抛硬币请输入1(输入-1退出): |