Java 数学方程模式

Java 数学方程模式,java,Java,我正在创建一个模式,当用户输入行数时,它会打印一个带有特定数字模式的三角形。我很难想出一个数学方程来输出这个模式: 我已经写了一段代码,它可以正常工作,但不符合我想要创建的模式。有人能帮我吗 以下是我目前的代码: import java.util.Scanner; public class trianglePattern { public static void main(String[] args) { Scanner input = new Scanner (S

我正在创建一个模式,当用户输入行数时,它会打印一个带有特定数字模式的三角形。我很难想出一个数学方程来输出这个模式:

我已经写了一段代码,它可以正常工作,但不符合我想要创建的模式。有人能帮我吗

以下是我目前的代码:

import java.util.Scanner;

public class trianglePattern {

    public static void main(String[] args) {
        Scanner input = new Scanner (System.in);
        System.out.println("How many rows?: ");
        int rows = input.nextInt();

        for(int i =0;i<rows;i++) {
            System.out.format("%"+4*(rows-i+1)+"s","");
            for(int j=i+1; j>1; j--)
                System.out.format("%4d", j);
            for(int j=1; j<=i+1; j++)
                System.out.format("%4d", j);

            System.out.println();
        }
    }
}
import java.util.Scanner;
公共类三角形模式{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
System.out.println(“多少行?:”);
int rows=input.nextInt();
对于(int i=0;i1;j--)
系统输出格式(“%4d”,j);

对于(intj=1;j试试这个。间隔是基于几个因素

  • 字段宽度之和。每个字段宽度保留为一个列表。它用于根据正在打印的行减少前导空间
  • 每个列字段宽度的大小应为该列中的最大值。给定列的宽度也保留在列表中。由于宽度与中心列对称,因此左侧格式也用于打印右侧值
  • 扫描仪输入=新扫描仪(System.in);
    System.out.println(“多少行?:”);
    int rows=input.nextInt();
    List fws=new ArrayList();
    List fmts=new ArrayList();
    函数fw=r->(int)(数学
    .log10(1=0;r--){
    系统输出打印(pad);
    int v=1;
    for(int c=r;c=1;
    系统输出打印f(fmts.get(c),v);
    }
    System.out.println();
    pad=pad.substring(r>0?fws.get(r-1):pad.length());
    }
    }
    
    试试这个。间距基于几个因素

  • 字段宽度之和。每个字段宽度保留为一个列表。它用于根据正在打印的行减少前导空间
  • 每个列字段宽度的大小应为该列中的最大值。给定列的宽度也保留在列表中。由于宽度与中心列对称,因此左侧格式也用于打印右侧值
  • 扫描仪输入=新扫描仪(System.in);
    System.out.println(“多少行?:”);
    int rows=input.nextInt();
    List fws=new ArrayList();
    List fmts=new ArrayList();
    函数fw=r->(int)(数学
    .log10(1=0;r--){
    系统输出打印(pad);
    int v=1;
    for(int c=r;c=1;
    系统输出打印f(fmts.get(c),v);
    }
    System.out.println();
    pad=pad.substring(r>0?fws.get(r-1):pad.length());
    }
    }
    
    好问题

        Scanner input = new Scanner(System.in);
        System.out.println("How many rows?: ");
        int rows = input.nextInt();
    
        ArrayList<Integer> list = new ArrayList<>();
        for(int i=0; i<rows; i++) {
            list.add(i);
        }
        for(int i=rows-2; i>-1; i--) {
            list.add(i);
        }
        // I print this here just for your help(delete it afterwards)
        for (Integer integer : list) {
            System.out.print(((int) Math.pow(2, integer)) + " ");
        }
        System.out.println("\n");
        for(int i=rows; i>=1; i--) {
            for (Integer integer : list) {
                int number = ((int) Math.pow(2, integer-i+1));
                if(number>=1) {
                    System.out.format("%d\t", ((int) Math.pow(2, integer-i+1)));
                } else {
                    System.out.print("    ");
                }
    
            }
            System.out.println("\n");
        }
    
    扫描仪输入=新扫描仪(System.in);
    System.out.println(“多少行?:”);
    int rows=input.nextInt();
    ArrayList=新建ArrayList();
    对于(int i=0;i-1;i--){
    列表.添加(i);
    }
    //我在这里打印这个只是为了你的帮助(以后删除)
    用于(整数:列表){
    System.out.print(((int)Math.pow(2,整数))+“”);
    }
    System.out.println(“\n”);
    对于(int i=行;i>=1;i--){
    用于(整数:列表){
    整数=((int)Math.pow(2,整数-i+1));
    如果(数字>=1){
    System.out.format(“%d\t”,((int)Math.pow(2,integer-i+1));
    }否则{
    系统输出打印(“”);
    }
    }
    System.out.println(“\n”);
    }
    
    (提示):在Arraylist列表中,我保存了计算问题最后一行所需的所有指数。

    好问题

        Scanner input = new Scanner(System.in);
        System.out.println("How many rows?: ");
        int rows = input.nextInt();
    
        ArrayList<Integer> list = new ArrayList<>();
        for(int i=0; i<rows; i++) {
            list.add(i);
        }
        for(int i=rows-2; i>-1; i--) {
            list.add(i);
        }
        // I print this here just for your help(delete it afterwards)
        for (Integer integer : list) {
            System.out.print(((int) Math.pow(2, integer)) + " ");
        }
        System.out.println("\n");
        for(int i=rows; i>=1; i--) {
            for (Integer integer : list) {
                int number = ((int) Math.pow(2, integer-i+1));
                if(number>=1) {
                    System.out.format("%d\t", ((int) Math.pow(2, integer-i+1)));
                } else {
                    System.out.print("    ");
                }
    
            }
            System.out.println("\n");
        }
    
    扫描仪输入=新扫描仪(System.in);
    System.out.println(“多少行?:”);
    int rows=input.nextInt();
    ArrayList=新建ArrayList();
    对于(int i=0;i-1;i--){
    列表.添加(i);
    }
    //我在这里打印这个只是为了你的帮助(以后删除)
    用于(整数:列表){
    System.out.print(((int)Math.pow(2,整数))+“”);
    }
    System.out.println(“\n”);
    对于(int i=行;i>=1;i--){
    用于(整数:列表){
    整数=((int)Math.pow(2,整数-i+1));
    如果(数字>=1){
    System.out.format(“%d\t”,((int)Math.pow(2,integer-i+1));
    }否则{
    系统输出打印(“”);
    }
    }
    System.out.println(“\n”);
    }
    

    (提示):在Arraylist列表中,我保存了计算问题最后一行所需的所有指数。

    切换循环,添加幂函数,并稍微调整循环索引:

    import java.util.Scanner;
    
    public class trianglePattern {
    
      public static void main(String[] args) {
        Scanner input = new Scanner (System.in);
        System.out.println("How many rows?: ");
        int rows = input.nextInt();
    
        for(int i = 0; i < rows; i++) {
          System.out.format("%"+4*(rows-i+1)+"s","");
          for(int j = 0; j <= i; j++)
            System.out.format("%4d", (int) Math.pow(2,j));
          for(int j = i - 1; j >= 0; j--)
            System.out.format("%4d", (int) Math.pow(2,j));
          System.out.println();
        }
      }
    }
    
    import java.util.Scanner;
    公共类三角形模式{
    公共静态void main(字符串[]args){
    扫描仪输入=新扫描仪(System.in);
    System.out.println(“多少行?:”);
    int rows=input.nextInt();
    对于(int i=0;i
    切换循环,添加幂函数,并稍微调整循环索引:

    import java.util.Scanner;
    
    public class trianglePattern {
    
      public static void main(String[] args) {
        Scanner input = new Scanner (System.in);
        System.out.println("How many rows?: ");
        int rows = input.nextInt();
    
        for(int i = 0; i < rows; i++) {
          System.out.format("%"+4*(rows-i+1)+"s","");
          for(int j = 0; j <= i; j++)
            System.out.format("%4d", (int) Math.pow(2,j));
          for(int j = i - 1; j >= 0; j--)
            System.out.format("%4d", (int) Math.pow(2,j));
          System.out.println();
        }
      }
    }
    
    import java.util.Scanner;
    公共类三角形模式{
    公共静态void main(字符串[]args){
    扫描仪输入=新扫描仪(System.in);
    System.out.println(“多少行?:”);
    int rows=input.nextInt();
    对于(int i=0;i
    欢迎来到堆栈溢出。请学习如何使用堆栈溢出