0

そのため、現在、完了できないように見える課題に取り組んでいます。さて、私はすべてを終えましたが、追加のクレジットが欲しいです. 私はウェブを見回してきましたが、探しているものを正確に見つけることができないようです.

public class PascalTester
{
  public static void main(String[] args)
  {
    Scanner kb = new Scanner(System.in);

    System.out.println("Welcome to the Pascal's Triangle program!");
    System.out.println("Please enter the size of the triangle you want");

    int size = kb.nextInt();

    int[][] myArray = new int[size][size];

    myArray = fillArray(myArray); 

    //myArray = calculateArray(myArray);

    printArray(myArray); //prints the array

}

private static int[][] fillArray(int[][] array)
{
    array[0][1] = 1;

    for (int i = 1; i < array.length; i++)
    {
        for (int j = 1; j < array[i].length; j++)
        {
            array[i][j] = array[i-1][j-1] + array[i-1][j];
        }
    }

    return array;
}

private static void printArray(int[][] array)
{
    for (int i = 0; i < array.length; i++)
    {
        for (int j = 0; j < array[i].length; j++)
        {
            if(array[i][j] != 0)
            System.out.print(array[i][j] + " ");
        }
        System.out.println();
    }

}

}

私が今抱えている唯一の問題は、出力を実際の三角形のように正しくフォーマットすることです。この時点での提案は非常に役立ちます。前もって感謝します

4

4 に答える 4

1

これに対する 1 つのアプローチは、すべての数値が同じ幅にフォーマットされていると仮定して、問題を行の中央揃えの問題として扱うことです。

Java コーディングは読者への演習として残しましたが、基本的には次のとおりです。

for lineText : triange lines 
   leadingSpacesCount = (80/2) - lineText.length(); 
   print " " x leadingSpacesCount + lineText
于 2013-01-17T04:10:10.187 に答える
0

http://www.kodejava.org/examples/16.htmlのテクニックを使用して、スペースを含む配列を作成してみてくださいarray.length - i - 1(数字の間に数字スペースを追加する必要があります.. 2 桁の数字の 2 つの数字があれば..) .

外側の for ループの開始時にこの配列を出力します。

于 2013-01-17T03:39:43.170 に答える
0

ここでの課題は、三角形の上部から印刷を開始したいのですが、三角形の最後の (そして最も幅の広い) 行に到達するまで、各行を中央に配置する場所がわからないことです。トリックは、最後の行の幅がわかるまで何も印刷しないことです。これを行う 1 つの方法は、すべての行をString(またはStringBuilder) オブジェクトとして生成し、最大幅を計算することです。次に、最初に適切な数のスペースを印刷して、各行を上から中央に配置します。正しいスペース数は

(maxLineLength - currentLine.length()) / 2

または、行の最大長を想定し、すべての行をその幅の中央に配置することもできます。長い線が最大幅を超えると、特定の行の下で三角形が歪んでしまいます。(負の数のスペースを印刷しようとしないでください!)

于 2013-01-17T04:10:21.317 に答える