プログラムを 88 でテストしたところ、三角形を完成させるために 1 つの星が残りました。87、2 つ星 86 3 つ星。これは特定の数について続きました。
これらは、プログラミングgenerate
機能の 2 つのオプションです。
• 1 つは、たとえば、最後の行の長さを計算し、maxLen
2 つの for ループを使用して、1 つの星の行、2 つの星の行、3 つの開始行などを生成し、次の行で終了する方法です。maxLen
出演者。maxLen の値は、二次方程式の大きい方の解以上の最小の整数です。x ( x + 1 ) = 2 * num.
• もう 1 つは、1 つの for ループを使用しSystem.out.println()
て、改行が必要な場所で実行中に num スターを出力することです。改行が必要なポイントは、 と などの 2 つの付随する整数変数を使用して計算できlen
ますcount
。ここで、前者は生成される線の長さであり、は線にcount
まだ印刷されていない星の数です。まず、値 1 を両方の整数変数に設定します。反復の各ラウンドで、 の値を減らしますcount
。 count の値が 0 になると、改行を挿入し、 の値を増やしてから、len
の値をコピーlen
しcount
ます。ループが終了したとき、 の値がcount
0 でも count でもない場合、星を追加して現在の行を延長します。
import java.util.*;
public class TriangleSingle
{
public static void generate(int x) //Generates the Triangle
{
int len, count;
len = 1;
count = 1;
for (int k = 1; k <= x; k++)
{
System.out.print("*");
count --;
if (count == 0)
{
System.out.println();
len ++;
count = len;
}
}
if (count!= 0 || count != len)
{
System.out.println("*"); //Completes the triangle if needed
// This is the **problem spot**
}