计算n个骰子总和的方法(不使用数组)

时间:2016-10-28 19:36:17

标签: java loops

我正在尝试开发一种与此主类代码交互的方法,以找到n个骰子的总和。 (主要课程计划将此计数分别限制为2,3,4和5骰子的总和)。

for (int numberOfDice = 2; numberOfDice <= 5; ++numberOfDice) {
        System.out.println("Rolling " + numberOfDice + " dice gives "
                + MathCalc.rollDice(numberOfDice));

该方法的任务是将骰子的数量相加(每个评估独立于另一个,意味着3个骰子的总和可以是11,例如4个骰子的总和可能只有8个。)仅使用a循环和一些局部变量。

我已经为我的代码的另一部分制作了这个方法来模拟骰子的一个卷但是由于某种原因我似乎无法绕过下一步。

public static int rollDie() {
    //roll a random number between 1-6 to simulate the roll of a die 
    return 1 + (int) (Math.random() * 6);
}

2 个答案:

答案 0 :(得分:2)

Math.random已过时且有缺陷,请勿使用它,而是使用Random,特别是其nextInt()方法,例如:

Random random = new Random();

// get values in the range [1:6]
int roll() {
    return 1 + random.nextInt(6);
}

总结n次滚动,请循环调用此方法:

int sum = 0;
for (int numberOfDice = 0; numberOfDice < count; ++numberOfDice) {
    sum += roll();
}

答案 1 :(得分:0)

对于教程中的奖励积分,请提交:

public static int rollDie() {
    return DoubleStream.generate(Math::random).limit(n).mapToInt(d -> (int)(d * 6) + 1).sum();
}