java - 在 Java 中使用数组的楼梯打印模式
问题描述
static void UsingArray(int n) {
String[] arr = new String[n];
for (int c = 0; c < n; c++) {
for (int c1 = 0; c < (n - c - 1); c++) {
arr[c1] = " ";
System.out.print(arr[c1]);
}
for (int c1 = (n - 1); c1 > (n - c - 2); c1--) {
arr[c1] = "#";
System.out.println(arr[c1]);
}
System.out.println();
}
}
我试过了,期待这样的输出:
//if n = 4
#
##
###
####
但它向我抛出了这个:
//n = 4
#
#
#
#
我绞尽脑汁调试它,但现在花了我这么多小时(我尝试了所有不同的方法,包括递归、字符串生成器来解决这个打印模式问题,而数组方法是我现在唯一做不到的方法)
我在这里做错了什么?
解决方案
这是因为 .System.out.println(arr[c1]);
应该是System.out.print(arr[c1]);
因为println()
prints 和额外的newline
. 你也不需要 arr[c1]
你可以使用System.out.print(" ");
或System.out.print("#");
修改后的代码:-
static void UsingArray(int n) {
for (int c = 0; c < n; c++) {
for (int c1 = 0; c1 < (n - c - 1); c1++) {
System.out.print(" ");
}
for (int c1 = c; c1 >= 0; c1--) {
System.out.print("#");
}
System.out.println();
}
}
输出 :-
#
##
###
####
推荐阅读
- swiftui - 显示加载图像直到响应
- html - 作为网站开发者,如何让 Android 和 iOS 上的谷歌新闻显示大图?
- sql-server - SQL Server 2017 和在线索引重建在 Standard 到 Enterprise 升级后无法正常工作
- docker - dotnet core odbc vertica 与 Docker
- c# - 如何禁用特定 dll 的自动绑定重定向
- regex - 制表符/正则表达式过滤器不区分大小写?
- kubernetes - 定义需要以下字段之一或没有字段的 Kubernetes 自定义资源
- openwrt - 每次启动时执行脚本 - OpenWRT
- flutter - 如何从颤振应用程序打开外部应用程序
- python - 如何修复日期和时间字段 Pymongo