麻烦使用For循环使两个不同字符的三角形适合矩形?

时间:2013-03-04 05:01:40

标签: java loops printing for-loop nested

输入示例:

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的输入。我不太确定如何使其仅打印其各自整数值的次数。有人可以解释一下吗?

5 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分: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();
}

答案 2 :(得分: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("");
}

答案 3 :(得分: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;
}

答案 4 :(得分: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