我已經查看了本網站上提出的其他這些問題的示例,但它們都比我知道如何處理和使用的要複雜得多。基本上,我如何總結大數,或者甚至在沒有使用BigInteger類的情況下存儲大數來計算總和呢?這些數字非常大,它們甚至不會適合很長時間。Java:在不使用BigInteger的情況下添加大數字
我現在的想法是使用字符數組,但我不知道如何添加超大數字,即使我能夠將數字存儲在字符數組中。任何幫助都會很棒。謝謝。
我已經查看了本網站上提出的其他這些問題的示例,但它們都比我知道如何處理和使用的要複雜得多。基本上,我如何總結大數,或者甚至在沒有使用BigInteger類的情況下存儲大數來計算總和呢?這些數字非常大,它們甚至不會適合很長時間。Java:在不使用BigInteger的情況下添加大數字
我現在的想法是使用字符數組,但我不知道如何添加超大數字,即使我能夠將數字存儲在字符數組中。任何幫助都會很棒。謝謝。
假設您將一個巨大的數字存儲在一個long數組中。然後,你需要做的就是添加每一對,檢測是否有溢出,然後將一對添加到下一對。這完全像我們實際上手動添加的方式。假設我們要計算:
5879
+6843
我們做的是我們增加9和3一起,它溢出,成爲2.然後,我們增加7和4,並添加一個從溢流重新獲得2.我們溢出。接下來,我們添加8和8 + 1溢出獲得7,再次溢出。最後,我們添加5和6 + 1溢出獲得2溢出。因此,我們得到12722.現在想象這些數字中的每一個在你的數組中都很長。
檢測溢出:如果您有兩個正數,當它們加在一起時,只有當它們溢出時纔會產生一個負數。所以你只需要檢查結果是否小於0來檢測你是否需要添加一個到下一對。
如果你不與Big-
類之前,我建議你使用String
一些解析,最好的科學,符號,以避免長期String
「聖經」,並保持您的代碼結構儘可能地在邏輯而不是string
上工作(因爲String
比較緩慢而沉重)。
編輯注:例如,我的意思是保持您的結構在邏輯上工作,而不是字符串,請參閱Flying_Banana的答案。
學習使用Big-
類。只要有可能,不要代碼容易; 做 code right!
我希望我能學會使用Big類,除非我不允許。這就是爲什麼我需要問這個問題。 – Subtopic
你應該使用BigInterger,它們是爲了大數字,在內部它們使用最有效的方式處理大數字。如果你想知道實現的細節,那麼你可以找到許多開源的代碼... –
自從你學習小學數學以來,把數字加在一起並沒有改變。 –
是的,重點不是使用BigInteger類。 – Subtopic