Java基础习题——杨辉三角、螺旋阵、魔方阵

第一次写博文 是在期末考试复习的过程中。现在先把代码粘过来,注释后面补。
1.杨辉三角

class YangHui 
{public static final int row=10;
	public static void main(String[] args) 
	{
		int i,j;
		
		int a[][]=new int[10][];
		create(a);
		System.out.println("杨辉三角");
		draw(a);
        System.out.println("随机数三角");
		random(a);
		draw(a);
	}
    public static void create(int m[][])
	{
		for(int i=0;i<10;i++)
		{
			m[i]=new int[i+1];
			m[i][0]=1;
		    m[i][i]=1;
			for(int j=1;j<i;j++)
				m[i][j]=m[i-1][j-1]+m[i-1][j];
		}
	}
	public static void draw(int m[][])
	{
		for (int i=0;i<10;i++)
		{
			for(int j=0;j<9-i;j++)
				System.out.print("   ");
			for(int j=0;j<=i;j++)
			  {
				System.out.print(m[i][j]+"   ");
                if(m[i][j]<10) System.out.print("  ");
				else System.out.print(" ");
			  }
			System.out.println("\n");
		}
	}
	public static void random(int m[][])
	{
		for(int i=0;i<10;i++)
		{
			m[i]=new int[i+1];
			for(int j=0;j<=i;j++)
			   m[i][j]=(int)(Math.random()*100)+1;
		}
	}

}

2.螺旋矩阵

class RotationMartrix 
{
	public static final int N=5;
	public static void main(String[] args) 
	{   
		int m[][]=new int[N][N];
		System.out.println("Hello World!");
		rotation(m);
		print(m);

	}
	public static void rotation(int m[][])
	{   int k=1;
		for(int i=0;i<=N/2;i++)
		{
			for(int j=i;j<N-i;j++)
                 m[i][j]=k++;
			for(int j=i+1;j<N-i;j++)
				m[j][N-i-1]=k++;
			for(int j=N-i-2;j>=i;j--)
				m[N-i-1][j]=k++;
			for(int j=N-i-2;j>i;j--)
				m[j][i]=k++;
		}
	}
	public static void print(int m[][])
	{
		for(int i=0;i<N;i++)
		{for(int j=0;j<N;j++)
			  System.out.print(m[i][j]+" ");
		  System.out.print("\n");
		}
	}

}

3.魔方阵

class MagicMartrix 
{
	public static final int N=5;
	public static void main(String[] args) 
	{
		int m[][]=new int[N][N];//全部为0
		int i=0,j=N/2,number;
		m[i][j]=1;
		for(number=2;number<=N*N;number++)
		{
			if(m[(i-1+N)%N][(j+1)%N]==0)
			{i=(i-1+N)%N;j=(j+1)%N;}
			else
				i=(i+1)%N;
			m[i][j]=number;
		}
        for(i=0;i<N;i++)
		{for(j=0;j<N;j++)
		        System.out.print(m[i][j]+" ");
		  System.out.print("\n");
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值