簡體   English   中英

我需要 Java 金字塔代碼方面的幫助

[英]I need help in java pyramid code

我需要這方面的幫助

1****** 
12***** 
123**** 
1234*** 
12345** 
123456* 
1234567

使用 3 個 for 循環,這將完成。 我試過這個

public class Pattren {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        int i,j,k;
        for (i = 1; i <= 7; i++)
        {
            for (j = 1; j <= i; ++j)
            {

                    System.out.print((j)+("\n"));

                for (k = 7 - i; k >= 1; k--)
                {
                    System.out.print("* ");

                }
            }
        }           
    }
}

但它有一些邏輯問題。 我需要改進這些代碼。 我得到了這個輸出。

1
* * * * * * 1
* * * * * 2
* * * * * 1
* * * * 2
* * * * 3
* * * * 1
* * * 2
* * * 3
* * * 4
* * * 1
* * 2
* * 3
* * 4
* * 5
* * 1
* 2
* 3
* 4
* 5
* 6
* 1
2
3
4
5
6
7

一個更簡單的版本是

    int i,j;
    for (i = 1; i <= 7; i++)
    {
        for (j = 1; j <= 7; ++j)
        {
            if (j <= i) {
                System.out.print(j);
            }
            else {
                System.out.print("*");
            }
        }
        System.out.println();
    }   

輸出

1******
12*****
123****
1234***
12345**
123456*
1234567

下面是一個代碼行更少的解決方案:

public static void main(String[] args) {
    StringBuilder sb = new StringBuilder();
    String s = "";
    for(int i=1; i<=7; i++){
        s += i;
        sb.append(String.format("%-7s", s).replace(" ", "*")).append("\n");
    }
    System.out.println(sb.toString());
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM