2016-02-05 184 views
1

我是Java的初學者,無法弄清楚如何打印倒數三角形的數字。這些數字應該每行減少1。防爆。行數; 6 打印:顛倒三角形的數字我Java

666666 
55555 
4444 
333 
22 
1 

到目前爲止,這是我想出了; (int nr是用戶的掃描輸入)

for (int i = 1; i <= nr; i++) { 

    for (int j = 1; j <=nr; j++) 
    { 

     System.out.print(nr); 

    } 
    nr--; 
    System.out.println(); 

} 

通過擁有nr--;循環變得越來越短,我無法弄清楚如何保持循環進行「nr」次,但仍然減少了打印出來的數量。

+0

兩個變量,也許? – rghome

回答

0

你的問題是,你正在改變NR,嘗試:

int original_nr = nr; 
for (int i = 1; i <= original_nr; i++) { 

    for (int j = 1; j <=nr; j++) 
    { 

     System.out.print(nr); 

    } 
    nr--; 
    System.out.println(); 

} 
0

不能減少nr,並仍然使用它作爲循環上限。實際上你應該認爲nr不可變的

相反,改變外環從nr向下計數到1,和內環計數從1i,和i打印價值。

for (int i = nr; i > 0; i--) { 
    for (int j = 0; j < i; j++) { 
     System.out.print(i); 
    } 
    System.out.println(); 
} 
1

你是正確的,你需要寫一個循環來打印行每個號,從NR和減1,直到你到達0。但你也必須打印可變數量的數字在每一行。要做到這一點,可以使用嵌套循環來打印數量所需的次數。

由於您在nr處開始打印並減少,直到達到1,您可以嘗試編寫一個遞減而非遞增的外部循環。然後使用嵌套循環將數字打印所需的次數。例如:

for (int i = nr; i > 0; i--) { 
    for (int j = 0; j < i; j++) { 
     System.out.print(i); 
    } 
    System.out.println(); 
} 
+0

謝謝!這可能是一個愚蠢的問題,但如果int我開始爲0,並減少-1,爲什麼不(i)打印出-1,-2等? – floval

+0

Int我從nr開始,不是0.它減小,直到for循環中的條件i> 0爲假。當我從1遞減到0並且循環中斷時,該條件變爲false。 – Spencer