我正在尝试使用11的幂来生成帕斯卡的三角形,但是它只能工作到4,并且需要修改4的代码才能获得三角形的更多部分。任何答案的线索(如果可能的话,可以通过此方法)表示赞赏。
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> a=new ArrayList<List<Integer>>();
for(int i=0;i<numRows;i++){
List<Integer> b = new ArrayList<Integer>(i);
int c=(int)(Math.pow(11,i));
while(c>0){
int d=c%10;
b.add(d);
c=c/10;
}
a.add(b);
}
return a;
}
}
答案 0 :(得分:1)
您要以相反的顺序向数组列表中添加数字,因此在将内部列表添加到外部列表之前,只需将其反向即可。
while(c>0){
int d=c%10;
b.add(d);
c=c/10;
}
Collections.reverse(b);
a.add(b);
答案 1 :(得分:1)
可悲的是,11的幂直到第5行为止,由于重新组合而在此处结束(有10,所以它“携带”)。
例如:期望11 ^ 5 = 1 | 5 | 10 | 10 | 5 | 1但是我们得到11 ^ 5 = 161051
您可以采用不同的方法来打印帕斯卡三角形。