我想要此代碼打印Pascal三角形,並且需要將generate()的輸出設置爲List<List<Integer>>
我一直在掙扎太多,主要是因爲我不習慣迭代並將值分配給列表的列表。你能幫我解決問題嗎?我不尋找奇特的解決方案!爲Java列表中的列表成員分配值
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class PascalTriangle {
public static long biCoeff(int n, int k) {
if (n==k) {
return (long) 1;
}
if (n==0) {
return (long) n;
}
return (biCoeff(n-1, k-1)+biCoeff(n-1,k));
}
public static List<List<Integer>> generate(int numRows) {
List<List<Integer>> l = new ArrayList<>();
for (int i=0; i<numRows; i++) {
for (int j=0; j<l.get(i).size(); j++) {
l.get(i).add((int) biCoeff(numRows, j));
}
}
return l;
}
public static void main(String[] args){
generate(5);
}
}
錯誤:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:635)
at java.util.ArrayList.get(ArrayList.java:411)
at PascalTriangle.generate(PascalTriangle.java:25)
at PascalTriangle.main(PascalTriangle.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Process finished with exit code 1
你知道在每一個結尾打印1的技巧是什麼? –
檢查更新的答案。或者請給我你想要的圖案。 –