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