蓝桥杯之杨辉三角
问题:
杨辉三角:将所有数字都存入一个一维数组 y[1000]中,代码如下(示例):
public class Main{
public static void main(String[] args) {
int y[]=new int[1000];
int i,j,sum;
for(i=1;i<=6;i++)
y[i]=1;
y[5]=2;
int temp;
int num;
int m,n,q=1; //q控制行数 m控制每行首下标数组 n控制每行个数
for(m=7,n=4;q<20;q++)
{
for(i=m,temp=1,num=n;temp<=num;temp++,i++)
{
if(y[i-num]==1&&y[i-num+1]==1)
{
y[i]=1;
continue;
}
else
y[i]=y[i-num]+y[i-num+1];
}
m+=n; //让每行数组下标改变
n++;
}
for(j=1,i=1;i<=20 ;i++ ) //显示所有数 20控制行数
{
pic(60-i);
for( sum=1;sum<=i;sum++,j++)
{
System.out.print(" "+y[j]+" ");
}
System.out.println();
}
}
public static void pic(int n) //函数空格美观
{
while(true)
{
if(n>0)
System.out.print(" ");
n--;
if(n<=0)
break;
}
}
}