2 回答

TA貢獻1829條經驗 獲得超13個贊
把這個圖案一分為二。
短跑
從 1 到 n 的數字
首先計算你需要打印多少次這個圖案。這里6次。
int n=in.nextInt();
for(int i=1;i<=n;i++)
{
}
每次您需要打印破折號后跟數字。
短跑
------------
Row | Dashes
------------
1 | 0
2 | 1
3 | 2
4 | 3
5 | 4
6 | 5
所以我引入了一個變量 dashes=0 并增加每一行的破折號。
int n=in.nextInt();
int dashes=0;
for(int i=1;i<=n;i++)
{
for(int j=1; j<=dashes;j++)
System.out.print("-");
dashes++;
}
數字從 1 開始,以 (n-i+1) 結尾
------------
Row | Numbers (n-i+1)
------------
1 | 123456
2 | 12345
3 | 1234
4 | 123
5 | 12
6 | 1
所以最終的代碼是
int n=in.nextInt();
int dashes=0;
for(int i=1;i<=n;i++)
{
for(int j=1; j<=dashes;j++)
System.out.print("-");
for(int k=1;k<=n-i+1;k++)
System.out.print(k);
// for next row - starts in new line
System.out.println();
dashes++;
}

TA貢獻2019條經驗 獲得超9個贊
這是一種方法:
System.out.println("Enter a number");
int x = ent.nextInt();
for (int i=0; i < x; ++i) {
for (int j=0; j < i; ++j) System.out.print("- ");
for (int j=1; j <= (x-i); ++j) {
if (j > 1) System.out.print(" ");
System.out.print(j);
}
System.out.println();
}
1 2 3 4 5 6
- 1 2 3 4 5
- - 1 2 3 4
- - - 1 2 3
- - - - 1 2
- - - - - 1
邏輯是使用兩個單獨的內部循環,一個用于破折號,它首先出現,另一個用于數字。破折號的循環從 0 運行到i-1,即外循環之前的一個位置。然后,對于該行的其余部分,我們打印從 1 到 的數字x - i。
添加回答
舉報