ฉันพยายามที่จะคิดเกี่ยวกับวิธีที่ฉันจะไปเกี่ยวกับการคำนวณในจำนวนมาก (เพื่อ infinitum - intergers ไม่ลอย) หากโครงสร้างภาษาไม่สามารถจัดการตัวเลขที่มีขนาดใหญ่กว่าค่าที่แน่นอน
ฉันแน่ใจว่าฉันไม่ใช่คนแรกและคนสุดท้ายที่ถามคำถามนี้ แต่คำค้นหาที่ฉันใช้ไม่ได้ให้อัลกอริทึมแก่ฉันในการรับมือกับสถานการณ์เหล่านั้น คำแนะนำส่วนใหญ่จะเสนอการเปลี่ยนแปลงภาษาหรือการเปลี่ยนแปลงตัวแปรหรือพูดคุยเกี่ยวกับสิ่งที่ดูเหมือนจะไม่เกี่ยวข้องกับการค้นหาของฉัน ดังนั้นฉันต้องการไกด์เล็กน้อย
ฉันจะร่างอัลกอริทึมแบบนี้:
กำหนดความยาวสูงสุดของตัวแปรจำนวนเต็มสำหรับภาษา
หากตัวเลขมีความยาวมากกว่าครึ่งของความยาวสูงสุดของตัวแปรที่แยกออกเป็นอาเรย์ (ให้ห้องเล่นเล็ก ๆ )
ลำดับ Array [0] = ตัวเลขที่อยู่ทางด้านขวา [n-max] = ตัวเลขที่อยู่ทางด้านซ้ายสุด
อดีต Num: 29392023 Array [0]: 23, Array [1]: 20, array [2]: 39, array [3]: 29
เมื่อฉันสร้างความยาวครึ่งหนึ่งของตัวแปรเป็นจุดปิดมาร์คฉันก็สามารถคำนวณหาหนึ่งในสิบส่วนหนึ่งร้อย ฯลฯ วางผ่านเครื่องหมายครึ่งทางเพื่อที่ว่าถ้าความยาวสูงสุดของตัวแปรเท่ากับ 10 หลักจาก 0 ถึง 9999999999 ฉันรู้ว่า โดยครึ่งหนึ่งนั้นถึงห้าหลักทำให้ฉันมีห้องเล่น
ดังนั้นถ้าฉันเพิ่มหรือทวีคูณฉันสามารถมีฟังก์ชั่นตรวจสอบตัวแปรที่เห็นว่าหลักที่หก (จากด้านขวา) ของอาร์เรย์ [0] เป็นตำแหน่งเดียวกับหลักแรก (จากด้านขวา) ของอาร์เรย์ [1]
การหารและการลบมีปัญหาของตัวเองซึ่งฉันยังไม่ได้คิด
ฉันต้องการทราบเกี่ยวกับการใช้งานที่ดีที่สุดในการรองรับจำนวนที่มากขึ้นกว่าที่โปรแกรมสามารถทำได้