簡體   English   中英

在java中使用循環到模式的不同變體

[英]Different variations for using loops to a pattern in java

我一直在嘗試for循環的不同變體,並且不知道如何制作這些模式:

圖案

1
121
12321
1234321

我的代碼如下,但不像上面的例子那樣工作。

for (int i = 1 ; i <= rows ; i++) {
    for (int j = (rows + 1 - i) ; j  > 0 ; j-- ) {
        System.out.print(j);
    }   
    System.out.print("\n");
 }

您的代碼只打印每行的后綴,您缺少為每行編寫12....i
另外,循環應該從i開始,而不是從rows-i+1

for (int i = 1 ; i <= rows ; i++) {
    //add an inner loop that prints the numbers 12..i
    for (int j = 1 ; j  < i ; j++ ) {
        System.out.print(j);
    }       
    //change where j starts from
    for (int j = i ; j  > 0 ; j-- ) { 
        System.out.print(j);
    }   
    System.out.println(""); //to avoid inconsistency between different OS
 }

首先注意11 * 11 = 121,111 * 111 = 12321等。

那么10 n -1是由n 9組成的數,所以(10 n -1)/ 9由n 1組成。

所以我們得到:

int powerOfTen = 1;
for (int len = 0; len < 5; len++)
{
    powerOfTen = powerOfTen*10;
    int ones = (powerOfTen-1)/9;
    System.out.println(ones*ones);
}

代碼解釋了一切!

public static void main(String[] args) {
    String front = "";
    String back = "";
    int rows = 5;
    for (int i = 1; i <= rows; i++) {
        System.out.println(front+i+back);
        front += i;
        back = i + back;
    }
}

嘗試這個:它似乎太多循環,但易於理解和有效。

public static void main(String[] args) {
    int rows=5;
    int i,j;
    for(i=1;i<=rows;i++)
    {
        /*print left side numbers form 1 to ...*/
        for(j=1;j<i;j++)
        {
            System.out.printf("%d", j);
        }


        /*Print the middle number*/
        System.out.printf("%d", i);


        /*print right numbers form ... to 1*/
        for(j=i-1;j>0;j--)
        {
            System.out.printf("%d", j);
        }
        System.out.println("");
    }

}
int n=0;
for(int m =0; m<=5; m++){
  for(n= 1;n<=m;n++){
        System.out.print(n);
    }

    for(int u=n;u>=1;u--){

      System.out.print(u);
    }
    System.out.print("");
}

暫無
暫無

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

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