几道常见编程题


”环形矩阵“
效果图:


public class Test
{
	static int size=5;
	static int[][] arry=new int[size][size];
	static int n=1;	
	public static void main(String[] args)
	{
		fn(0);
		print();
	}
	
	public static void fn(int start)
	{
		int end=size-start;
		
		//----->
		for(int i=start;i<end;i++)
		{
			arry[start][i]=n++;
		}
		
		//判断是否退出
		if(start+1>end)
		{
			return;
		}
		
		//|
		//|
		//|
		//V
		for(int i=start+1;i<end;i++)
		{
			arry[i][end-1]=n++;
		}
		
		//<---
		for(int i=end-2;i>=start;i--)
		{
			arry[end-1][i]=n++;
		}
		
		//^
		//|
		//|
		//|
		for(int i=end-2;i>start;i--)
		{
			arry[i][start]=n++;
		}
		
		//
		fn(start+1);
	}
	public static void print()
	{
		for(int i=0;i<size;i++)
		{
			for(int j=0;j<size;j++)
			{
				System.out.print(arry[i][j]+"\t");
			}
			System.out.println();
		}
	}
}


杨辉三角
效果图: 几道常见编程题_第1张图片

public class Test
{
	public static void main(String[] args)
	{
		int size=10;
		int[][] a=new int[size][size]; 
		for(int i=0;i<size;i++)
		{ 
			for(int j=0;j<=i;j++) 
			{ 
				if(j==0||i==j)
				{ 
					a[i][j]=1; 
				}
				if(i<size-1)
				{ 
					a[i+1][j+1]=a[i][j]+a[i][j+1]; 
				}
				if(j==0)
				{
					for(int k=0;k<size-i-1;k++)
					{
						System.out.print("\t");
					}
				}
				System.out.print(a[i][j]+"\t\t"); 
			}
			System.out.println();
		} 
	}
}


斐波那契数列
效果图:

public class Test
{
	static int size=10;
	static int[] arry=new int[size];
	
	public static void main(String[] args)
	{
		fn(size);
		insert(size);
		print();
	}
	
	public static int fn(int n)
	{
		if(n==1 || n==2)
		{
			return 1;
		}
		return fn(n-1)+fn(n-2);
	}
	
	public static void insert(int n)
	{
		for(int i=0;i<n;i++)
		{
			arry[i]=fn(i+1);
		}
	}
	
	public static void print()
	{
		for(int i=0;i<size;i++)
		{
			System.out.print(arry[i]+",");
		}
	}
}

你可能感兴趣的:(编程,J#)