我的程序没有计算正确(Java)

My programm does not calculate right (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 超出 Integer.MAX_VALUE。 (2147483647)

使用长。

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