java用一维数组编写杨辉三角,我不是很明白,请高手指点。

来源:百度知道 编辑:UC知道 时间:2024/05/31 10:03:39
请高手从第一个“for”开始把每一排的意思进行注释。谢谢!回答的好再加10分!决不食言!(还有,第4排建立8个元素的数组指的是纵看8行还是最后一排有8个元素啊?哎,这个明明是2维数组了啊```)
public classYangHui{
public static void main(String args[])
{ int i;
int yh[]=new int[8];
for(i=0;i<8;i++)
{ yh[i]=1;
for(int j=i-1;j>0;j--)
yh[j]=yh[j-1]+yh[j];
for(int j=0;j<=i;j++)
System.out.print(yh[j]+"\t");
System.out.println();}
}
}

输出结果为
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1

本程序只使用了一维数组
public classYangHui{
public static void main(String args[])
{ int i;
int yh[]=new int[8]; //一行中最大八个元素
for(i=0;i<8;i++) //i实际控制着行数,即当前打印到第i行
{ yh[i]=1; //初始化数组中的当前行能用到的每个元素为1(比如当前打印到第4行,则初始化数组中前4个元素为1,此处较难理解,其实前3个元素已经在前面的循环中初始化,所以此处实际是初始化一行中最后一个元素为1)
for(int j=i-1;j>0;j--) //第3行才开始本循环
yh[j]=yh[j-1]+yh[j]; //赋值前yh[j]实际上是前一行的数据,即[i-1]行的数据,所以此处重新赋值为yh[j-1]+yh[j],赋值后yh[j]才变成当前行需要的数据。此处看懂了,整个程序就看懂了!
for(int j=0;j<=i;j++) //此循环只是输出一行中的数据而已
System.out.print(yh[j]+"\t");
System.out.println();} //一行输出完后换行
}
}
本程序比较巧妙,我也是看了好几遍才看明白,真正难点只在于赋值那一行。

int yh[]=new int[8]; 是指申请了8个int类型的空间。因此它是一个一维数组