4

入力の例:

3

4

出力の例(スペース=新しい行と仮定します)。

QQQH
QQHH
QHHH

QQQQH
QQQHH
QQHHH
QHHHH

これまでのところ、これを出力しようとするコードのフラグメントは次のとおりです(すべての変数が事前定義されていると仮定します)。

public int getSize()
{
    for (int i = size; i > 0; i--){
        for (int j = 1; j < size; j++){
            out.print("Q");
            out.print("H");
        }
        out.println("");
    }
    return 0;
}

印刷するだけです:(スペース=新しい行と仮定します)。

QHQHQHQHQH
QHQHQHQHQH
QHQHQHQHQH
QHQHQHQHQH
QHQHQHQHQH

5の入力の場合、それぞれの整数値の回数だけを出力する方法がよくわかりません。誰かが説明できますか?

4

5 に答える 5

2

次のように、内側のループを2つに分割できます。

    for (int i = size; i > 0; i--) {
        for (int j = 0; j < i; j++) {
            out.print("Q");
        }
        for (int j = i; j < size + 1; j++) {
            out.print("H");
        }
        out.println();
    }

出力:

QQQH
QQHH
QHHH

QQQQH
QQQHH
QQHHH
QHHHH

または、ループを中断したくない場合は、三項演算子を使用できます。

for (int i = size; i > 0; i--) {
    for (int j = 0; j < size + 1; j++) {
        out.print(j < i ? 'Q' : 'H');
    }
    out.println();
}
于 2013-03-04T05:18:37.480 に答える
1

代わりにこのコード ブロックを試してください。

int j=0;
for (int i = size; i > 0; i--)
{
    j=0;
    while(j < i) 
    {
        out.print("Q");
        j++;    
    }
    j=i;
    while(j < size+ 1) 
    {
        out.print("H");
        j++;
    }
    out.println();
}
于 2013-03-04T05:22:05.047 に答える
1

これを試して

for (int i = 0; i < size; i++) {
 for (int j = 1; j <= size-i; j++) {
   System.out.print("Q");
 }
 for (int k = 0; k <= i; k++) { 
   System.out.print("H");
 }
 System.out.println("");
}
于 2013-03-04T05:24:00.313 に答える
1

サンプル入力でテスト済み。正常に動作

public int getSize() {
    for (int i = 1; i < size+1; i++) {
        for (int j = 0; j < size+1; j++) {
            int Qtimes = size-i;
            if(j <= Qtimes) {
                System.out.print("Q");
            } else{
                System.out.print("H");
            }
        }
        System.out.println("");
    }
    return 0;
}
于 2013-03-04T05:24:17.047 に答える
0

これは、入力が 4 の場合に機能します。たとえば、任意の数値に変更します。

public int getSize()
{
    int cnt = 0;
    int i,j,k = 0;

    for ( i = 4; i > 0; i--){

        for ( j = 0; j < i; j++){

        System.out.print("Q");

        }
        cnt ++;
        for( k = 0 ; k <cnt ; k++) {
            System.out.print("H");
        }

        System.out.println("");

    }


    return 0;
}

出力は

QQQQH
QQQHH
QQHHH
QHHHH
于 2013-03-04T05:20:01.277 に答える