0

パターンを印刷するクラスを作成しました。

1
2   4
3   5   7
4   6   8   10
5   7   9   11  13

私はこのコードを使用しました:

public class pat3
{
    public void method()
    {
        int row;
        int val;

        for(row=1;row<=5;row++)
        {
            for(val=1;val<=row;val++)
            {
                System.out.print(val + 2 + "\t");
            }

            System.out.println();
        }
    }
}

ネストされた 2 つのループを使用しました。外側のループはパターン内の行を制御し、内側のループは列を制御します。これを以前のパターンの問題と相互参照すると、私のロジックは問題ないようです。

ただし、このクラスを実行すると、正しくない出力が得られます。

3   4   
3   4   5   
3   4   5   6   
3   4   5   6   7   

変数を変更してforループの表現を変更しようとしましたが、出力は常に無相関でランダムに変化するため、問題の原因を見つけることができません。誰でも私を助けることができますか?

PS私はコーディングが初めてなので、賢明な数学的な答えはありません。コードの問題に関する簡単な答えが欲しいだけです。

4

5 に答える 5

1

内側のループを次のようにします。

        for(val=0;val<row;val++)
        {
            System.out.print((row + 2*val) + "\t");
        }

イデオネ

于 2013-11-11T17:08:46.837 に答える
1

forループとしてこれを試してください:

for(int row=0;row<5;row++)
    {
        for(int val=0;val<=row;val++)
        {
            System.out.print(row+ 1 + val * 2 + "\t");
        }

        System.out.println();
    }
于 2013-11-11T17:13:36.630 に答える
0
public void method()
{
    int row;
    int val;

    for(row=1;row<=5;row++)
    {
        for(val=0;val<row; val++)
        {
            System.out.print((2*val) + row);
        }

        System.out.println();
    }
}
于 2013-11-11T17:11:53.810 に答える
0

コードを次のように変更します。

public void method()
{
    int row;
    int val;

    for(row=1;row<=5;row++)
    {
        for(val=1;val<=row;val++)
        {
            System.out.printf("%2d ", row + (val-1)*2);
        }

        System.out.println();
    }
}

次のようにコンソールに出力します。

 1 
 2  4 
 3  5  7 
 4  6  8 10 
 5  7  9 11 13 
于 2013-11-11T17:13:28.333 に答える
0

コードへの最小限の変更:

System.out.print(row + (val - 1)*2 + "\t");
于 2013-11-11T17:14:02.323 に答える