Python中文网

一个关于 编程问题的解答网站.

有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中的Euler 45项目

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

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!");

我知道可能有更快的方法来做到这一点,但现在我只是太沮丧了,因为它不起作用,我不知道为什么


共 (0) 个答案