java - 我的程序计算不正确(Java)
问题描述
我必须编写一个程序来计算在奥地利系统中计算的彩票中奖概率(45 个中的 6 个)。
我使用这个公式:(45!/6!*39! = 45 *44*43*42*41*40/1*2*3*4*5*6
因为数字被缩短了)。但它的计算不正确,程序给出2179827
了答案而不是8415060
. 有人可以帮助我并告诉我错误在哪里吗?
package homework_1;
public class Aufgabe_3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n = 45*44*43*42*41*40;
int m = 1*2*3*4*5*6;
int w = n/m;
System.out.println("Die Wahrscheinlichkeit ist: " + w);
}
}
非常感谢您!:)
解决方案
在您的代码45*44*43*42*41*40
中,它将超过int
限制。用于long
存储结果
long n = (long)45*44*43*42*41*40;
long m = (long)1*2*3*4*5*6;
long w = n/m;
推荐阅读
- c - 数据提取——这个正则表达式可以做得更好吗?
- python - 在 Python 中使用两个 4D 数组制作的散点图斜率
- javascript - 无法读取未定义的属性 OwnerDocument
- javascript - react js - Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0
- java - null org.bukkit.command.CommandException 错误(Spigot)
- ffmpeg - 音频转换失败问题 Discord.py
- output - (wx)Maxima:返回表达式使用 `sec` `csc` 和 `cot` 而不是倒数?
- typescript - 定义 TypeScript 回调类型并提供默认回调值
- python - 如何将包含多行的单元格的数据框行转换为单独的列
- excel - 您可以在 Excel 中创建自定义错误类型吗?