Saya mencoba untuk berpikir tentang bagaimana saya akan melakukan perhitungan pada angka yang sangat besar (hingga tak terhingga - intergers no floats) jika konstruk bahasa tidak mampu menangani angka yang lebih besar dari nilai tertentu.
Saya yakin saya bukan yang pertama atau terakhir yang mengajukan pertanyaan ini, tetapi istilah pencarian yang saya gunakan tidak memberi saya algoritma untuk menangani situasi tersebut. Sebaliknya sebagian besar saran menawarkan perubahan bahasa atau perubahan variabel, atau berbicara tentang hal-hal yang tampaknya tidak relevan dengan pencarian saya. Jadi saya perlu sedikit bimbingan.
Saya akan membuat sketsa algoritma seperti ini:
Tentukan panjang maks variabel integer untuk bahasa.
Jika suatu angka lebih dari setengah panjang max dari variabel, pisahkan dalam array. (berikan sedikit ruang bermain)
Urutan array [0] = angka paling ke kanan [n-maks] = angka paling kiri
Ex. Bil: 29392023 Array [0]: 23, Array [1]: 20, array [2]: 39, array [3]: 29
Karena saya menetapkan setengah panjang variabel sebagai tanda titik maka saya dapat menghitung yang, sepersepuluh, seperseribu, dll. Tempatkan melalui tanda setengah sehingga jika variabel panjang maks adalah 10 digit dari 0 hingga 9999999999 maka saya tahu bahwa dengan membaginya menjadi lima digit, beri saya ruang bermain.
Jadi jika saya menambah atau mengalikan, saya dapat memiliki fungsi pemeriksa variabel yang melihat bahwa digit keenam (dari kanan) dari array [0] adalah tempat yang sama dengan digit pertama (dari kanan) dari array [1].
Membagi dan mengurangi memiliki masalah mereka sendiri yang belum saya pikirkan.
Saya ingin tahu tentang implementasi terbaik untuk mendukung jumlah yang lebih besar daripada yang bisa dilakukan oleh program.