这是我被分配的问题:
所谓的“星号”,s,是由以下公式定义的数字: s = 6n(n-1) + 1 其中 n 是星号的索引。因此,前六个(即对于 n = 1、2、3、4、5 和 6)星号是:1、13、37、73、121、181
相反,所谓的“三角形数”t 是从 1 到 n 的数字之和:t = 1 + 2 + … + (n-1) + n。因此前六个(即对于 n = 1、2、3、4、5 和 6)三角形数是:1、3、6、10、15、21
编写一个 Java 应用程序,生成一个包含所有 int 类型值的列表,这些值既是星号又是三角形数。
解决这个问题时,您必须编写并使用至少一个函数(例如
isTriangeNumber()
orisStarNumber()
或determineTriangeNumber()
ordetermineStarNumber()
)。此外,您必须仅使用此处提供的公式来解决问题。
tl;dr:需要输出既是星数又是三角形数的值。
不幸的是,我只能在无限循环中得到输出值“1”的结果,即使我在 while 循环中递增 1。
public class TriangularStars {
public static void main(String[] args) {
int n=1;
int starNumber = starNumber(n);
int triangleNumber = triangleNumber(n);
while ((starNumber<Integer.MAX_VALUE)&&(n<=Integer.MAX_VALUE))
{
if ((starNumber==triangleNumber)&& (starNumber<Integer.MAX_VALUE))
{
System.out.println(starNumber);
}
n++;
}
}
public static int starNumber( int n)
{
int starNumber;
starNumber= (((6*n)*(n-1))+1);
return starNumber;
}
public static int triangleNumber( int n)
{
int triangleNumber;
triangleNumber =+ n;
return triangleNumber;
}
}