java - 我的程序计算不正确(Java)

标签 java calculation

我必须编写一个程序来计算中彩票的概率 按奥地利体系计算(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;

关于java - 我的程序计算不正确(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60660182/

相关文章:

java - 正确使用java类路径,需要澄清

java - 在 Jaxb 中编码 map 时出现问题

java.lang.RuntimeException : Unable to instantiate receiver com. 调.TuneTracker

php - 使用php对数据库表中的特定行进行计算

Angular4 - 样式绑定(bind)中的计算

java - 在java中导入Dll库

java - 添加 spring-cloud-starter-kubernetes-config 作为依赖项时,Kubernetes 客户端(证书)抛出异常

bash - 你怎么能强制 bc 遵循比例?

python - 跨多个数据帧计算新列

javascript - 如何找到一个点的坐标,其中用 Javascript 给出了 2 个点和距离