方法一:
public class Test {
public static void main(String[] args) {
int z = 0; //定义计数器z,z就是我们要打印的数
for(int i =1; i <= 6;i++)//外循环控制打印的行数(6行)
{
for(int j = 1; j <= i; j++)//内循环控制没行打印个数
{
System.out.print(++z+"\t");//z每打印一次值增加1,每行是数量是j,打印j此换行
}
System.out.println("");
}
}
}
方法二:
例如:
x为行数, f(x)为每一行的最大值
f(x)-f(x-1)=x
f(x-1)-f(x-2)=x-1
f(2)-f(1)=2
用数学叠加方法可以计算出:(x*x-x+2)/2为第x行的最小值,(x*x+x)/2为第x行的最大值
for(int x=1;x<=6;x++) //打6行
{
for (int y=(x*x-x+2)/2;y<=((x*x+x)/2);y++ ) //每行从最小值打到最大值
{
System.out.print(y+"\t");
}
System.out.println();
|