Java金字塔输出
大家好,我正在尝试创建一个金字塔程序,要求用户在1-15之间输入int。当我进入1-9时,它会创建一个完美的金字塔。但如果我输入10-15,中间的线就会向右移动,每个数字经过10就不再形成金字塔Java金字塔输出,java,Java,大家好,我正在尝试创建一个金字塔程序,要求用户在1-15之间输入int。当我进入1-9时,它会创建一个完美的金字塔。但如果我输入10-15,中间的线就会向右移动,每个数字经过10就不再形成金字塔 public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("Enter a number between 1-15"); int dig
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter a number between 1-15");
int dig = input.nextInt();
for (int i = 1; i <= dig; i++) {
for (int j = 1; j <= dig - i; j++) {
System.out.print(" ");
}
for (int k = i; k >= 1; k--) {
System.out.print(" " + k);
}
for (int k = 2; k <= i; k++) {
System.out.print(" " + k);
}
System.out.println();
}
}
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(System.in);
System.out.println(“输入一个介于1-15之间的数字”);
int dig=input.nextInt();
对于(inti=1;i给你:)
您必须计算最大数字的位数,然后在开始时创建更大的空格,但当两位数出现时,开始将其变小
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter a number between 1-15");
int dig = input.nextInt();
int length = ("" + dig).length();
for (int i = 1; i <= dig; i++) {
for (int j = 1; j <= dig - i; j++) {
for (int f = 0; f < length; f++) {
System.out.print(" ");
}
System.out.print(" ");
}
for (int k = i; k >= 1; k--) {
for (int j = 0; j < length; j++) {
System.out.print(" ");
}
for (int j = 0; j < length - (""+k).length() + 1; j++) {
System.out.print(" ");
}
System.out.print(k);
}
for (int k = 2; k <= i; k++) {
for (int j = 0; j < length; j++) {
System.out.print(" ");
}
for (int j = 0; j < length - (""+k).length() + 1; j++) {
System.out.print(" ");
}
System.out.print(k);
}
System.out.println();
}
}
您仍然可以使用代码获得相同的结果,但不要使用print方法,而是使用printf方法,该方法将格式说明符作为第一个参数
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter a number between 1-15");
int dig = input.nextInt();
for (int i = 1; i <= dig; i++) {
for (int j = 1; j <= dig - i; j++) {
System.out.printf("%4s", " ");
}
for (int k = i; k >= 1; k--) {
System.out.printf("%4d", k);
}
for (int k = 2; k <= i; k++) {
System.out.printf("%4d", k);
}
System.out.println();
}
}
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(System.in);
System.out.println(“输入一个介于1-15之间的数字”);
int dig=input.nextInt();
对于(int i=1;i,因为10-15占用两个字符空间,所以需要在第1-9行中对此进行补偿。
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter a number between 1-15");
int dig = input.nextInt();
for (int i = 1; i <= dig; i++) {
for (int j = 1; j <= dig - i; j++) {
System.out.printf("%4s", " ");
}
for (int k = i; k >= 1; k--) {
System.out.printf("%4d", k);
}
for (int k = 2; k <= i; k++) {
System.out.printf("%4d", k);
}
System.out.println();
}
}