簡體   English   中英

如何使用 for 循環打印數字序列圖

[英]How to print a number sequence figure using for loops

我需要編寫一個打印出下圖的程序:

122333444455555
22333444455555
333444455555
444455555
55555

這是我的代碼:

for (int a = 0; a <= 5; a++)
{
    for (int b = 0; b < a; b++)  
    {          
        System.out.print(a);
    }        
}

打印出122333444455555

我需要三重嵌套我的 for 循環,但我不確定從哪里開始。 如果我能得到任何提示/技巧,將不勝感激。

我想你想多了。 我會簡化事情並使用不同的算法。 啟動一個String並用一個循環對其進行變異。 像,

String s = "122333444455555";
for (int i = 0; i < 5; i++) {
    System.out.println(s);
    s = s.substring(i + 1);
}

產出(按要求)

122333444455555
22333444455555
333444455555
444455555
55555

或者:

for(int a = 1; a <= 5; a++){
    for (int b = a; b <= 5; b++) {
        for (int c = 1; c <= b; c++) {
            System.out.print(b);
        }
    }
    System.out.println();
}

我知道你已經有了答案,但我做這個很開心,哈哈:

public static void main(String[] args)
{
    int aux = 0;
    for(int i = 1; i <=5 ; i++) {
        if(i == 1) {
            System.out.print("1");
        } else if (i ==2){
            System.out.print("22");
        }else if (i ==3){
            System.out.print("333");
        }else if (i ==4){
            System.out.print("4444");
        }else if (i ==5){
            System.out.print("55555\n");
            if(aux != 5) {
                aux ++;
                i = aux;
            }
        }
    }
}

既然你說for loops ,我假設你的意思至少是其中兩個。

for (int i = 1; i <= 5; i++) {
    for(int k = i; k <= 5; k++) {
    System.out.print((k+"").repeat(k));
    }
    System.out.println();
}

關於您問題的更常見解決方案:

代碼

private static void printStringSequence(int number) {
    for (int i = 0; i < number; i++) {
        StringBuilder sb = new StringBuilder();
        for (int j = i; j < number; j++) {
            sb.append(generateRepeateSequence(j + 1));
        }
        System.out.println(sb.toString());
    }
}

private static String generateRepeateSequence(int number) {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < number; i++) {
        sb.append(number);
    }
    return sb.toString();
}

測試 Output

打印字符串序列(5);

122333444455555
22333444455555
333444455555
444455555
55555

打印字符串序列(4);

1223334444
223334444
3334444
4444

暫無
暫無

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

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