java - 如何打印 * 的金字塔
问题描述
例如,输入 5 并显示:
* * * * *
* * *
*
我当前的代码是这样的: public static void main(String[] args) { Scanner in = new Scanner(System.in);
int num = 4;
while(num % 2 == 0){
System.out.println("Introduce un numero impar:");
num = in.nextInt();
if (num % 2 == 0){
System.out.println("Has introducido un numero par");
}
}
for (int numFila = 0; numFila < num; numFila++) { //filas
for (int numColumna = 0; numColumna < num*2-1; numColumna++) { //columnas
if (numFila <= numColumna){
System.out.print(" * ");
}else{
System.out.print(" ");
}
}
//Salt de línia per començar un altre fila
System.out.println();
}
}
我可以展示以下内容:
* * * * * * *
* * * * * *
* * * * *
解决方案
只需添加numColumna <= num - numFila - 1
到您的 if 语句中。整个代码是:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int num = 4;
while(num % 2 == 0){
System.out.println("Introduce un numero impar:");
num = in.nextInt();
if (num % 2 == 0){
System.out.println("Has introducido un numero par");
}
}
for (int numFila = 0; numFila < num; numFila++) { //filas
for (int numColumna = 0; numColumna < num*2-1; numColumna++) { //columnas
if (numFila <= numColumna && numColumna <= num - numFila - 1){
System.out.print(" * ");
}else{
System.out.print(" ");
}
}
//Salt de línia per començar un altre fila
System.out.println();
}
}
}
推荐阅读
- laravel - 无法将数据传递到 laravel 8 中的自定义登录视图
- java - Harmony OS 中 Nullable 和 NonNull 注释的替代方法是什么?
- sql - 我正在查询一个表,但我需要不同列中的输出
- json - 重构列表的 json 解析
- c# - EF6 代码优先 - 从名为“id”的列中删除主键
- spring - HTTP404Error - Not Found 源服务器没有找到目标资源的当前表示或不愿意透露存在的表示
- r - rgl 回顾性切换 sharedMouse
- openssl - OpenVpn TSL 失败
- react-typescript - 从 iframe 内的 PDF 工具栏中删除标题
- reactjs - 如何在componentDidMount中的按钮上设置焦点