发金额为100的红包,分成10份,每份红包大小随机

发金额为100的红包,分成10份,每份红包大小随机

// 初始化分数总和 sum 和分数列表 scores
double sum = 100;
List<Double> scores = new ArrayList<>();

// 随机生成 9 个分数
for (int i = 0; i < 9; i++) {
    double score = Math.round(Math.random() * (sum / 2) * 10.0) / 10.0;
    scores.add(score);
    sum -= score;
}

// 最后一个分数为总和减去前 9 个分数的和
double lastScore = Math.round(sum * 10.0) / 10.0;
scores.add(lastScore);

// 打印输出结果
System.out.println("分数列表:");
scores.forEach(System.out::println);
System.out.println("分数总和:" + scores.stream().mapToDouble(Double::doubleValue).sum());

在此版本中,我们使用了 Math.round 方法来将浮点数保留 1 位小数。随机生成 9 个分数时,每次生成的随机数范围是 0 到当前分数总和的一半,并调用 Math.round 方法将其保留 1 位小数。然后从分数总和中减去该随机数,并将其添加到分数列表中。

最后一个分数与前 9 个分数计算方法相同,但是需要使用 Math.round 方法将其保留 1 位小数。在此版本中,我们将 Math.round 方法与数值乘以 10.0 然后除以 10.0 的技巧相结合,确保保留 1 位小数并正确舍入。

希望这个修正的版本能够帮助到您,如果您有任何问题,请随时提问!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从码农到码到成功

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值