我嘗試將斐波那契數添加到 aList并得到:
執行緒“主”java.lang.OutOfMemoryError 中的例外:Java 堆空間
我需要在 aList或array, 中的這些數字來進一步操作它。
這是我的代碼:
int a;
int b = 0;
int c = 1;
int prod = 2932589879121
List<Integer> list = new ArrayList<>();
for (int i = 0; i < prod; i ) {
a = b;
b = c;
c = a b;
list.add(c);
}
我該如何解決?
我的完整代碼:
public static long[] productFib(long prod) {
long[] result = new long[3];
int a;
int b = 0;
int c = 1;
int first = 0;
int second = 0;
List<Integer> list = new ArrayList<>();
for (int i = 0; i < prod; i ) {
a = b;
b = c;
c = a b;
list.add(c);
}
int index = 0;
while (true) {
first = list.get(index);
second = list.get(index 1);
if (first * second == prod) {
result[0] = list.get(index);
result[1] = list.get(index 1);
result[2] = 1;
break;
} else if (first * second > prod) {
result[0] = list.get(index);
result[1] = list.get(index 1);
result[2] = 0;
break;
}
index ;
}
return result;
}
我需要找出串列中兩個斐波那契數的乘法是否會給出另一個斐波那契數。這適用于小數字。
將代碼更改為:
public static long[] productFib(long prod) {
long[] result = new long[3];
long a;
long b = 0;
long c = 1;
for (int i = 0; i < prod; i ) {
a = b;
b = c;
c = a b;
if (a * b == prod) {
result[0] = a;
result[1] = b;
result[2] = 1;
break;
} else if (a * b > prod) {
result[0] = a;
result[1] = b;
result[2] = 0;
break;
}
}
return result;
}
作業正常
uj5u.com熱心網友回復:
prod 的值超出范圍。在 java 中,int (signed) 的范圍是 -2147483648 到 2147483647。這應該會引發編譯錯誤“整數太大”。
uj5u.com熱心網友回復:
作業正常:
public static long[] productFib(long prod) {
long[] result = new long[3];
long a;
long b = 0;
long c = 1;
for (int i = 0; i < prod; i ) {
a = b;
b = c;
c = a b;
if (a * b == prod) {
result[0] = a;
result[1] = b;
result[2] = 1;
break;
} else if (a * b > prod) {
result[0] = a;
result[1] = b;
result[2] = 0;
break;
}
}
return result;
}
uj5u.com熱心網友回復:
int 資料型別是一個 32 位有符號二進制補碼整數。它的值范圍介于 - 2,147,483,648 (-2^31) 到 2,147,483,647 (2^31 -1) (含)之間。它的最小值是 - 2,147,483,648,最大值是 2,147,483,647。將 prod-int prod 的資料型別更改為 long prod。因為 long 資料型別是 64 位二進制補碼整數。有符號長整數的最小值為 -263,最大值為 263-1。在 Java SE 8 及更高版本中,您可以使用 long 資料型別來表示無符號的 64 位 long,其最小值為 0,最大值為 264-1。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/515905.html
標籤:爪哇数组列表斐波那契
