首页 > 解决方案 > 我的程序计算不正确(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);
    }

}

非常感谢您!:)

标签: javacalculation

解决方案


在您的代码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;

推荐阅读