Tôi đang cố gắng suy nghĩ về cách tôi sẽ thực hiện các phép tính trên các số cực lớn (đến infinitum - intergers no float) nếu cấu trúc ngôn ngữ không có khả năng xử lý các số lớn hơn một giá trị nhất định.
Tôi chắc chắn tôi không phải là người đầu tiên cũng không phải là người cuối cùng đặt câu hỏi này nhưng các thuật ngữ tìm kiếm tôi đang sử dụng không mang lại cho tôi một thuật toán để xử lý các tình huống đó. Thay vào đó, hầu hết các đề xuất cung cấp một sự thay đổi ngôn ngữ hoặc thay đổi biến đổi, hoặc nói về những điều dường như không liên quan đến tìm kiếm của tôi. Vì vậy, tôi cần một chút hướng dẫn.
Tôi sẽ phác thảo một thuật toán như thế này:
Xác định độ dài tối đa của biến số nguyên cho ngôn ngữ.
Nếu một số lớn hơn một nửa chiều dài của chiều dài tối đa của biến thì chia nó thành một mảng. (cho một phòng chơi nhỏ)
Thứ tự mảng [0] = số nhiều nhất bên phải [n-max] = số nhiều nhất bên trái
Ví dụ. Num: 29392023 Mảng [0]: 23, Mảng [1]: 20, mảng [2]: 39, mảng [3]: 29
Vì tôi đã thiết lập một nửa chiều dài của biến là điểm đánh dấu, sau đó tôi có thể tính toán các điểm, phần mười, phần trăm, v.v. Đặt qua dấu nửa chừng để nếu độ dài tối đa của biến là 10 chữ số từ 0 đến 9999999999 thì tôi biết rằng bằng một nửa số đó đến năm chữ số cho tôi một phòng chơi.
Vì vậy, nếu tôi thêm hoặc nhân tôi có thể có một hàm kiểm tra biến để thấy rằng chữ số thứ sáu (từ bên phải) của mảng [0] là cùng một vị trí với chữ số đầu tiên (từ bên phải) của mảng [1].
Chia và trừ có những vấn đề riêng mà tôi chưa nghĩ đến.
Tôi muốn biết về việc triển khai tốt nhất để hỗ trợ số lượng lớn hơn chương trình có thể.