cuốn sách gpt4 ai đã làm

Fibonacci n mod m

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 05:43:12 29 4
mua khóa gpt4 Nike

Tôi đang cố gắng tính toán mô đun, có thể rất lớn: lên tới 10^18, là số Fibonacci thứ nĐây là mã của tôi, nó hoạt động tốt với số lượng nhỏ, nhưng đối với số lượng lớn, nó sẽ ném OutOfMemoryError hoặc NegativeArraySizeException.

nhập java.util.*;

lớp công khai FibonacciHuge {
riêng tư tĩnh dài getFibonacciHugeFast(long n, long m) {
long[] arr = new long[(int) n + 1];
mảng[0] = 0;
mảng[1] = 1;
cho (int i = 2; i < n + 1; i++) {
mảng[i] = (arr[i - 1] + mảng[i - 2]) % m;
}
trả về mảng[(int) n];
}

public static void main(String[] args) {
Máy quét máy quét = Máy quét mới (System.in);
dài n = scanner.nextLong();
dài m = scanner.nextLong();
System.out.println(getFibonacciHugeFast(n, m));
}
}

câu trả lời hay nhất

Dưới đây là giải thích cho hai trường hợp ngoại lệ/lỗi của bạn.

  1. OutOfMemoryError: Vì bạn đang cố gắng tạo một mảng lớn, vượt xa kích thước có thể. Trích dẫn câu hỏi nàyMảng Java có kích thước tối đa không?
  2. NegativeArraySizeException: Vì bạn đã chuyển đổi giá trị dài thành số nguyên (mã long[] arr = new long[(int) n + 1];). Đọc cái này:Các kiểu dữ liệu nguyên thủy . (về cơ bản bạn tràn tại một số điểm và số nguyên kết quả là âm)

Về java - Fibonacci n mod m, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/39606533/

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress