これは私が割り当てられた質問です:
いわゆる「星の数」sは、次の式で定義される数です。s = 6n(n-1)+ 1ここで、nは星の数のインデックスです。したがって、最初の6つ(つまり、n = 1、2、3、4、5、および6の場合)の星の数は、1、13、37、73、121、181です。
対照的に、いわゆる「三角数」tは、1からnまでの数の合計です。t= 1 + 2 +…+(n-1)+n。したがって、最初の6つ(つまり、n = 1、2、3、4、5、および6の場合)の三角数は、1、3、6、10、15、21です。
六芒星と三角数の両方であるint型のすべての値のリストを生成するJavaアプリケーションを作成します。
この問題を解決するときは、少なくとも1つの関数(
isTriangeNumber()
orisStarNumber()
またはordetermineTriangeNumber()
などdetermineStarNumber()
)を記述して使用する必要があります。また、問題を解決するには、ここで提供されている式のみを使用する必要があります。
tl; dr:スター番号とトライアングル番号の両方の値を出力する必要があります。
残念ながら、whileループで1ずつインクリメントしていても、無限ループで値「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;
}
}