java编程题 杨辉三角形填空
publicclassA{staticlongf(introw,intcol){if(row<2)return1;if(col==0)return1;if(col==ro...
public class A
{
static long f(int row, int col){
if(row<2) return 1;
if(col==0) return 1;
if(col==row) return 1;
long[] a = new long[row+1];
a[0]=1;
a[1]=1;
int p = 2;
while(p<=row){
a[p] = 1;
for( __________________ ) a[q] = a[q] + a[q-1];//填空
p++;
}
return a[col];
}
public static void main(String[] args){
System.out.println(f(6,2));
System.out.println(f(6,3));
}
} 展开
{
static long f(int row, int col){
if(row<2) return 1;
if(col==0) return 1;
if(col==row) return 1;
long[] a = new long[row+1];
a[0]=1;
a[1]=1;
int p = 2;
while(p<=row){
a[p] = 1;
for( __________________ ) a[q] = a[q] + a[q-1];//填空
p++;
}
return a[col];
}
public static void main(String[] args){
System.out.println(f(6,2));
System.out.println(f(6,3));
}
} 展开
1个回答
展开全部
for (int q = p-1;q>=1;q--)// 填空
a[q] = a[q] + a[q - 1];
首先, 由于后面的代码使用了q变量, 前面又没有定义, 所以,q应该是在for里面定义的。
杨辉三角
1
1 1
1 2 1
1 3 3 1
。。。。。
每一行前后都是1, 中间的数是 上一行对应的 idx和idx-1的数字和,即
a[q] = a[q] + a[q - 1];
但由于不能从前往后填,因为一个数字依赖于前面一个数字,所以for循环是从后往前填
a[q] = a[q] + a[q - 1];
首先, 由于后面的代码使用了q变量, 前面又没有定义, 所以,q应该是在for里面定义的。
杨辉三角
1
1 1
1 2 1
1 3 3 1
。。。。。
每一行前后都是1, 中间的数是 上一行对应的 idx和idx-1的数字和,即
a[q] = a[q] + a[q - 1];
但由于不能从前往后填,因为一个数字依赖于前面一个数字,所以for循环是从后往前填
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询