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。
添加回答
举报