打印一个数组,用到三角形写法

/*需求:打印出输入4时输出
	0000
	0111
	0122
	0123
	输入1~n时打印出来。用数组的方法。
通过分析可以看出这个数列就是两个三角形组成。一个是
0
01
012
0123
第n行为n个数,分别为0~n
另一个三角形为
000
11
2
为一个相同的倒三角,并且行数和列数为输入数-1
按照以前写三角形的方法可以写出下面的代码。
class SJX
{
	public static void main(String[] args)
	{
		int n=4;
		int[][] arr = new int[n][n];
		for(int x = 0; x < n ;x++)
		{
			for(int y = 0; y <= x; y++)
			{
				arr[x][y] = y;		//把三角形的数传递个数组
				
			}
			for(int y1 = x ; y1 < n ; y1++)
			{
				arr[x][y1] = x;		//把倒三角的数传递给数组
			}
		}
		
		for(int x2 = 0; x2 < n ;x2++)
		{
			for(int y2 = 0; y2 <n; y2++)
			{
				System.out.print(arr[x2][y2]);		//打印出数组
			}
			
			System.out.println();		//换行功能
		}
		
	}
}	
但是经过提示有一种方法就是通过if判断来写。
发现:0
      01
      012
      0123
在m行n列的时候,如果m>n是递增并且arr[m][n]=n-1。
		如果m<n是相同的并且arr[m][n]=n-1
所以代码更简洁更好写。
*/
class SJX
{
	public static void main(String[] args)
	{
		int n = 4;
		int[][] arr = new int[n][n];
		for(int x = 0 ; x < n ; x ++)
		{
			for(int y = 0 ; y < n ; y ++)
			{
				if( x >= y )
				{
					arr[x][y] = y;
				} 
				else
				arr[x][y] = x;
			}
		}
		dY(arr);
	}
	public static void dY(int[][] a)		//把打印数组封装成一个方法
	{
		int n = a.length;
		for(int x = 0; x < n ;x++)
		{
			for(int y = 0; y < n; y++)
			{
				System.out.print(a[x][y]);		//打印出数组
			}
			
			System.out.println();		//换行功能
		}
	}
}
/*
经测试当输入9时,打印结果如下。正确打印。
D:\Java0224\新建文件夹>javac SJX.java


D:\Java0224\新建文件夹>java SJX
000000000
011111111
012222222
012333333
012344444
012345555
012345666
012345677
012345678


D:\Java0224\新建文件夹>
*/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值