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) 个答案