Java实现带!!符号的倒金字塔图案 现有代码输出异常如何调整
问题原因
你当前代码的问题出在中间!!的打印逻辑,嵌套两层循环后输出的!!组数是等差数列求和结果,不符合每行递减2组的预期,自然会出现前几行多输出!!的问题。
解决方案
把中间打印!!的两层循环替换为单层循环,控制每组的输出数量即可,修改后的完整代码如下:
public static void main(String[] args) { //input可自定义,比如4、6、8、43等 int input = 6; // 填6即可匹配你给出的示例图案 for (int i = 0; i < input; i++){ //左侧斜杠 for (int j = 1; j <= i; j++ ){ System.out.print("\\\\"); } //修改后的!!打印逻辑 int exclamationGroupCount = 2 * (input - i) - 1; for (int k = 0; k < exclamationGroupCount; k++) { System.out.print("!!"); } //右侧斜杠 for (int j = 1; j <= i; j++ ){ System.out.print("//"); } //换行 System.out.println(); } }
如果你使用的是Java 11及以上版本,还可以用String.repeat简化代码,逻辑完全一致:
public static void main(String[] args) { int input = 6; for (int i = 0; i < input; i++){ System.out.print("\\\\".repeat(i)); System.out.print("!!".repeat(2 * (input - i) - 1)); System.out.print("//".repeat(i)); System.out.println(); } }
验证效果
当input=6时,运行代码输出结果和你给出的倒金字塔图案完全一致。
内容的提问来源于stack exchange,提问作者thorzos
相关产品推荐
相关产品推荐

