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

请高手从第一个“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();} //一行输出完后换行
}
}
本程序比较巧妙,我也是看了好几遍才看明白,真正难点只在于赋值那一行。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-04-18
int yh[]=new int[8]; 是指申请了8个int类型的空间。因此它是一个一维数组
第2个回答  2020-05-15
本程序只使用了一维数组
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();}
//一行输出完后换行
}
}
本程序比较巧妙,我也是看了好几遍才看明白,真正难点只在于赋值那一行。
相似回答