[英]Role 2 dice 100000 times, write the amount of times each sums and rolled and make a graph - Java
到目前为止,这是我的代码。
public class TwoDice {
public static void main(String[] args) {
Dice a = new Dice();
Dice b = new Dice();
int sum = 0;
int is2=0; int is3=0; int is4=0; int is5=0; int is6=0;
int is7=0; int is8=0; int is9=0; int is10=0; int is11=0; int is12=0;
for (int i=1; i<= 100000; i++){
a.roll();
a.getFaceValue();
b.roll();
b.getFaceValue();
sum = (a.getFaceValue()+ b.getFaceValue());
if(sum == 2){
is2++;
}else{
if(sum == 3){
is3++;
}else{
if(sum == 4){
is4++;
}else{
if(sum == 5){
is5++;
}else{
if(sum == 6){
is6++;
}else{
if(sum == 7){
is7++;
}else{
if(sum == 8){
is8++;
}else{
if(sum == 9){
is9++;
}else{
if(sum == 10){
is10++;
}else{
if(sum == 11){
is11++;
}else{
if(sum == 12){
is12++;
}
}
}
}
}
}
}
}
}
}
}
}
System.out.println("The sum is 2 "+ is2 + " many times");
System.out.println("The sum is 3 "+ is3 + " many times");
System.out.println("The sum is 4 "+ is4 + " many times");
System.out.println("The sum is 5 "+ is5 + " many times");
System.out.println("The sum is 6 "+ is6 + " many times");
System.out.println("The sum is 7 "+ is7 + " many times");
System.out.println("The sum is 8 "+ is8 + " many times");
System.out.println("The sum is 9 "+ is9 + " many times");
System.out.println("The sum is 10 "+ is10 + " many times");
System.out.println("The sum is 11 "+ is11 + " many times");
System.out.println("The sum is 12 "+ is12 + " many times");
for(int i = 0; i <= is2;i++){
System.out.println("*");
}
for(int i = 0; i <= is3;i++){
System.out.println("*");
}
for(int i = 0; i <= is4;i++){
System.out.println("*");
}
for(int i = 0; i <= is6;i++){
System.out.println("*");
}
for(int i = 0; i <= is7;i++){
System.out.println("*");
}
for(int i = 0; i <= is8;i++){
System.out.println("*");
}
for(int i = 0; i <= is9;i++){
System.out.println("*");
}
for(int i = 0; i <= is10;i++){
System.out.println("*");
}
for(int i = 0; i <= is11;i++){
System.out.println("*");
}
for(int i = 0; i <= is12;i++){
System.out.println("*");
}
}
}
如何修复我的代码,以便每次is2
都增加一个星形打印。
例如,如果is2
增加了3次,而is3
增加了4次,它将显示为
***
****
既然你还没有学会阵列呢,我就告诉你如何打印*
有给你two
s每线。 您需要多次使用System.out.print
,但只需一行System.out.println
即可完成这一行。 就像是,
for(int i = 0; i <= is2;i++){
System.out.print("*"); // <-- on one line.
}
System.out.println(); // <-- end the line.
如果使用哈希图,则可能会压缩太多,如下所示:
公共课TwoDice {
public static void main(String[] args) {
Dice a = new Dice();
Dice b = new Dice();
Map<Integer,Integer> sumMap = new Hashmap<Integer,Integer>();
int sum = 0;
for (int i=1; i<= 100000; i++){
a.roll();
a.getFaceValue();
b.roll();
b.getFaceValue();
//
sum = (a.getFaceValue()+
b.getFaceValue());
if(sumMap.get(sum)==null){
sumMap.put(sum,1);
}else{
sumMap.put(sum,sumMap.get(sum)+1);
}
}
for(int i=1; i<=12; i++)
{
int size = sumMap.get(i)==null? 0 : sumMap.get(i);
System.out.println("The sum is "+i+" "+ size +
" many times");
}
for(int i=1; i<=12; i++)
{
int size = sumMap.get(i)==null? 0 : sumMap.get(i);
for(int j=1; j<=size; j++){
System.out.print("*");
}
System.out.println("");
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.