Java中的Euler45项目

Java中的Euler45项目,java,project,Java,Project,我正在研究的问题是:三角形、五边形和六边形数由以下公式生成: Triangle Tn=n(n+1)/2 Pentagonal Pn=n(3n−1)/2 Hexagonal Hn=n(2n−1) 可以验证T285=P165=H143=40755 找到下一个三角形编号,它也是五边形和六边形 我不知道为什么我的代码不起作用。它确实适用于第一批40755,但在运行下一批时,它只会输出405939771。根据网站的说法,这是不正确的 boolean

我正在研究的问题是:三角形、五边形和六边形数由以下公式生成:

Triangle        Tn=n(n+1)/2     
Pentagonal      Pn=n(3n−1)/2    
Hexagonal       Hn=n(2n−1)
可以验证
T285=P165=H143=40755

找到下一个三角形编号,它也是五边形和六边形

我不知道为什么我的代码不起作用。它确实适用于第一批
40755
,但在运行下一批时,它只会输出
405939771
。根据网站的说法,这是不正确的

boolean match = false;
System.out.println("What?");
//Calculations

for (int n = 180; match != true; n++) {
    //Pentagonal
    long Pn = n * (3 * n - 1) / 2;

    // Finding if it has a Hexagonal match
    for (int i = 144; i < n; i++) {
        long Hn = i * (2 * i - 1);
        if (Pn == Hn) {
            System.out.println(Hn);
            match = true;
            break;
        }
    }
    if (match == true)
        break;
}
System.out.println("Done!");
布尔匹配=false;
System.out.println(“什么?”);
//计算
for(int n=180;match!=true;n++){
//五边形
长Pn=n*(3*n-1)/2;
//查找是否有六边形匹配
对于(int i=144;i
我知道可能有更快的方法可以做到这一点,但现在我太沮丧了,因为它不起作用,我不知道为什么。

你想创建一个真正的;因此,理想情况下,我们可以简单地复制/粘贴/运行一个程序;以一种(不清楚的)方式获得您在此处描述的结果。但对于初学者来说:难题在于让Tn=Pm=Ho,n,m,o是不同的数字。您的代码只比较P和H。。。密码里的T在哪?!相关的: