我刚接触Java编码,而且我在编写此程序时遇到了麻烦。
用户输入0到9之间的整数,并显示金字塔。例如:
用户输入:5
1
2 1 2
3 2 1 2 3
4 3 2 1 2 3 4
5 4 3 2 1 2 3 4 5
这就是我迄今为止所做的一切(我真的很难过)
import static java.lang.System.*;
import java.util.Scanner'
import java.util.*;
public class pyramid
{
public pyramid()
{
Scanner scan = new Scanner(System.in);
System.out.println("enter a number between 1 and 20");
int num = scan.nextInt();
for (int i = 0; i < num + 1; i++)
{
for (int j = 0; j < num - 1; j++)
{
System.out.println(" ");
}
}
}
}
欢迎并感谢任何帮助。谢谢!
答案 0 :(得分:0)
package com.company;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
pyramid();
}
public static void pyramid() {
Scanner scan = new Scanner(System.in);
System.out.println("enter a number between 1 and 20");
int num = scan.nextInt();
for (int i = 0; i < num + 1; i++) {
for (int j = 0; j < num - i; j++) {
System.out.print(" ");
}
for (int j = i; j > 0; --j) {
System.out.printf("%d ", j);
}
for (int j = 2; j <= i; ++j) {
System.out.printf("%d ", j);
}
System.out.println();
}
}
}
答案 1 :(得分:0)
开始列出您所知道的内容,以查找模式。说你有高度3:
······_1
···_2 _1 _2
_3 _2 _1 _2 _3
·
是用于对齐的空间,_
为第二个数字保留的空格。
Row 0 1 2
Spaces in front 6 3 0 (3 * (num - i - 1))
所以你想循环j
来打印那个数量的空格,然后再做一个循环(不在j
内,但在它之后)将降序打印到1
,然后另一个循环将升序号码打印回i+1
。使用格式为System.out.printf
的{{1}}会在单位数字上打印%2d
空格。