Java编程中的数字金字塔代码

Java编程中的数字金字塔代码,java,Java,创建显示下图的java代码: 1 2 3 4 3 4 5 6 7 4 5 6 7 8 9 10 嘿,伙计们!这里有新的。我们有一个涉及java编程的练习要做,出于某种原因,在解决这个问题时,我的头脑似乎要崩溃了。到目前为止,我做了一些工作,但输出不正确 public class Pyramid { public static void main(String[] args) { int size = 10;

创建显示下图的java代码:

         1
       2 3 4
     3 4 5 6 7
   4 5 6 7 8 9 10
嘿,伙计们!这里有新的。我们有一个涉及java编程的练习要做,出于某种原因,在解决这个问题时,我的头脑似乎要崩溃了。到目前为止,我做了一些工作,但输出不正确

public class Pyramid {
    public static void main(String[] args) {
        int size = 10;
        for (int row = 1; row <= size; row++) {
            int j = 1;
            int i = 1;
            int counter1 = 1;
            int counter2 = 1;

            // print space
            while (j++ <= size - row) {
                System.out.print(" ");
            }

            // count up
            j = size - (size - row);
            if (j == 10) j = 0;
            counter1 = 1;
            while (counter1 <= row) {
                System.out.print(j);
                if (j == 9 && counter1 != row) j = -1;
                j++;
                counter1++;
            }
            j = j - 2;
            counter2 = 1;

            // count down
            while (counter2 < row) {
                System.out.print(j--);
                if (j < 0) j = 9;
                counter2++;
            }
            System.out.print("\n");
        }
    }
}
公共类金字塔{
公共静态void main(字符串[]args){
int size=10;

对于(int row=1;row这里,您在每个原始数据的中点之后进行倒计时。因此,您不是在增加数字,而是在倒计时部分减少(
j
在减少)

这里你需要4个RAW。但是你已经为10个RAW编程了一些条件(这里你不需要指定最大的RAW数。你只需要输入RAW数就足够了。请找到下面的逻辑)

即使您需要增加RAW的数量,逻辑也不应该改变

逻辑: 对于每个原始数据,元素的数量应为原始数据的奇数,每个原始数据的第一个元素应以原始数据的数量开始

比如说,

如果我们考虑第三生,那么第三奇数=<代码>(3×2)-1=5</COD>。所以原始的元素数是<代码> 5 < /代码>。 第三个raw的起始元素是

3
。 因此,我们将:

3,4,5,6,7
请尝试以下代码:

int n = 5;
    for (int i = 1; i < n; i++) {
        int odd = (i*2) - 1;

        for (int j = 1; j <= odd; j++) {
            if (j==1) {

                for (int x = n; x >=i; x--)
                    System.out.print("  ");
            }

            System.out.print(((j + i)-1) + " ");
        }
        System.out.println();
    }
int size=10;
对于(int row=1,last=1;row试试这个

阶级金字塔{

public static void main(String[] args) {
    int myLevel;
    int i, j, k;
    int x = 1;
    myLevel = 6;

    for (i = 1; i <= myLevel; i++) {

        for (k = 1; k <= myLevel - i; k++) {
            System.out.print(" ");
        }

        for (j = k + 1; j <= myLevel; j++) {
            System.out.print(x);
        }
        for (int l = myLevel; l > k - 1; l--) {
            System.out.print(x);
        }
        x++;
        System.out.println("");

    }
}
publicstaticvoidmain(字符串[]args){
int-myLevel;
int i,j,k;
int x=1;
myLevel=6;

对于(i=1;i我可以看到你发布的内容中有两个主要错误

  • 10是金字塔中的最高数字,但它只有4行。因此
    size
    应该等于4(除非它只是一个示例,行数并不重要)
  • 我看不出你为什么要倒计时。你可以看到同一行的数字总是在增加
  • 除此之外:

    • 您应该用空格分隔数字。示例中的数字彼此粘连。这意味着您必须更改每行前面的空格数。(在示例中,您可以简单地将空格加倍)
    • 其实并不重要:当您需要新行时,可以使用
      System.out.println()

    你为什么要标记
    javascript
    你得到了什么输出?因为农民代表发布了不同的代码,而不是帮助修复你的代码,而且问题重复了,我会这样报告。问题的可能重复显然是家庭作业,所以指出错误要比给出完整的解决方案好。不仅如此,你不会重复修正问题的代码,但你给出一个新的。提问者通过这种方式会学到什么?@user270349我将简短地添加我删除否决票的原因。@user270349谢谢:)
        int size = 10;
        for (int row = 1, last = 1; row <= size; ++row, last += 3) {
            for (int j = 1, max = size - row; j <= max; ++j)
                System.out.print("  ");
            for (int j = row; j <= last; ++j)
                System.out.print(" " + j);
            System.out.println();
        }
        // result:
        //                    1
        //                  2 3 4
        //                3 4 5 6 7
        //              4 5 6 7 8 9 10
        //            5 6 7 8 9 10 11 12 13
        //          6 7 8 9 10 11 12 13 14 15 16
        //        7 8 9 10 11 12 13 14 15 16 17 18 19
        //      8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
        //    9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
        //  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
    
    public static void main(String[] args) {
        int myLevel;
        int i, j, k;
        int x = 1;
        myLevel = 6;
    
        for (i = 1; i <= myLevel; i++) {
    
            for (k = 1; k <= myLevel - i; k++) {
                System.out.print(" ");
            }
    
            for (j = k + 1; j <= myLevel; j++) {
                System.out.print(x);
            }
            for (int l = myLevel; l > k - 1; l--) {
                System.out.print(x);
            }
            x++;
            System.out.println("");
    
        }
    }