gpt4 book ai didi

java - 在 Java 中使用 For 循环打印模式

转载 作者:行者123 更新时间:2023-12-01 16:42:30 24 4
gpt4 key购买 nike

我需要打印这个: enter image description here

我需要在java中使用for循环打印这个正方形。

这是我到目前为止所拥有的:

 public static void main(String [] args)
{

for(int i = 0; i < 5; i++){
System.out.print("O ");
}
System.out.println();
for(int i = 0; i < 4; i++){
System.out.print("O ");
}

}

最佳答案

最简单的解决方案是嵌套两个循环,首先打印 O,然后使用第二个循环打印 .。您知道每行的 O 数量应减少(而 . 数量应增加)。事实上,每行都有 5 - ii(其中 i 是行号)。您可以使用外循环来确定应使用这些公式绘制每个元素的数量。就像,

int size = 5;
for (int i = 0; i < size; i++) {
for (int j = 0; j < size - i; j++) {
System.out.print("O ");
}
for (int j = 0; j < i; j++) {
System.out.print(". ");
}
System.out.println();
}

哪个输出(根据要求)

O O O O O 
O O O O .
O O O . .
O O . . .
O . . . .

另一种选择是创建一个 StringBuilder 来表示初始条件,打印然后改变 StringBuilder。这会使用额外的存储空间,但无需嵌套循环。

int size = 5;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < size; i++) {
sb.append("O ");
}
for (int i = 0; i < size; i++) {
System.out.println(sb);
sb.setCharAt(sb.length() - (i * 2) - 2, '.');
}

而且,您还可以使用 boolean 值数组(例如位掩码)来实现这一点。将 false 转换为 O,将 true 转换为 .,并将索引的最后一个元素偏移量设置为 每次迭代都为 true。就像,

int size = 5;
boolean[] arr = new boolean[size];
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
System.out.print(arr[j] ? ". " : "O ");
}
System.out.println();
arr[size - i - 1] = true;
}

关于java - 在 Java 中使用 For 循环打印模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60557172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com