初学编程java 关于杨辉三角得程序,哪位高人讲解下,我基本不明白。解释下意思,谢谢!1

public class Yanghui
{
public static void main(String args[])
{
int n=Integer.parseInt(args[0]);
int t[][]=new int[n][n];
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(j==0)
t[i][j]=1;
else if (i==0)
t[i][j]=0;
else
t[i][j]=t[i-1][j-1]+t[i-1][j];
System.out.print(t[i][j]+" ");

}
System.out.println();
}
}
}

第1个回答  2010-11-11
public class Test {
public static void main(String args[]) {
int n = Integer.parseInt(args[0]);
int arr[][] = new int[n][n];//定义一个动态的二位数组
for (int i = 0; i <n; i++) {//i为行,j为列
for (int j = 0; j <=i; j++) {//行与列是相等的
if (j == 0)arr[i][j] = 1;//第一列都为1
else
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];//中间的数位它肩上的两个数之和
System.out.print(arr[i][j]+"\t");
}
System.out.println("\n");
}

}
}

你可以把N具体化为数字,就不用int n = Integer.parseInt(args[0]);
第2个回答  2010-11-08
public class Yanghui {
public static void main(String args[]) {
int n = Integer.parseInt(args[0]);
int t[][] = new int[n][n];
int i, j;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
if (j == 0)
t[i][j] = 1;//第一个数字始终为1
else if (i == 0)
t[i][j] = 0;//如果是第一行除了第一个其它的数字都为0
else
t[i][j] = t[i - 1][j - 1] + t[i - 1][j];//其他情况下,[i][j]的值取自上一行(i-1行)前一个数字(j-1)和后一个数字J+1的和
System.out.print(t[i][j] + " ");

}
System.out.println();
}
}
}

程序写得不好,有不少可以优化的地方
第3个回答  2010-11-08
public class Yanghui
{
public static void main(String args[])
{
int n=Integer.parseInt(args[0]);
int t[][]=new int[n][n];
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(j==0)
t[i][j]=1;//设置第一列为1;
else if (i==0)
t[i][j]=0;//设置第一行为0;
else
t[i][j]=t[i-1][j-1]/*当前要计算数字的上一行前一列,即左上角那个数字*/+t[i-1][j];/*上一行同一列数字,两个数进行相加,就是杨辉三角的算法,得出当前数字*/
System.out.print(t[i][j]+" ");//打印结果

}
System.out.println();//换行
}
}
}本回答被提问者采纳
第4个回答  2010-11-08
你执行下不就知道了 外面是 两层循环,循环里面只是一个简单的判断。