该模式应如下所示:
12345
22345
33345
44445
55555
我已经尝试过:
import java.io.*;
class Pattern
{
void display()
{
int i=0,k;
for(i=1;i<=5;i++)
{
for(k=1;k<=5;k++)
{
System.out.print(i+" ");
}
System.out.println();
}
}
}
最佳答案
试试这个:
void display()
{
int i=0,k;
for(i=1;i<=5;i++)
{
for(k=1;k<=5;k++)
{
if (k < i ) {
System.out.print(i);
} else {
System.out.print(k);
}
}
System.out.println();
}
}
您的模式取决于行号i
:
- 第 n 行应该打印 n, n 次
- 用从 n 开始的递增整数填充该行的剩余部分,直到该行的长度/最大行数。
您可以概括它以使模式更具可读性:
void display(int dimension)
{
int lineNumber = 0, linePosition = 0;
int numberOfLines = dimension, numberOfCharactersPerLine = dimension;
for(lineNumber =1;lineNumber<=numberOfLines ; lineNumber++)
{
for(linePosition = 1;linePosition <= numberOfCharactersPerLine ;linePosition++)
{
if ( linePosition < lineNumber ) {
System.out.print(lineNumber);
} else {
System.out.print(linePosition);
}
}
System.out.println();
}
}
这里我们看到带有显式命名变量的指令。如果linePosition
(我们决定打印的行中的当前字符)小于行号,我们应该打印行号,否则打印字符位置。
通过将其描绘为带有坐标的二维矩阵,然后根据这些坐标来填充它,可能会更好地想象这一点。
关于java - 在循环中创建数字模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23275594/