我已经查看过本网站上提出的这些问题的其他例子,但它们都比我知道如何处理和使用要复杂得多。基本上,如何在不使用BigInteger类的情况下对大数字求和,甚至存储大数字以便以后求和?数字太大,甚至不适合长。
我现在的想法是使用字符数组,但我不知道如何添加超大数字,即使我能够将数字存储在字符数组中。任何帮助都会很棒。谢谢。
答案 0 :(得分:2)
假设您在一个long数组中存储了一个庞大的数字。然后你需要做的就是添加每一对,检测是否有溢出,然后将一个添加到下一对。这和我们实际上手工添加的方式完全一样。假设我们想要计算:
5879
+6843
我们做的是将9和3加在一起,它溢出并变为2.然后我们再添加7和4,并从溢出中添加一个得到2.我们再次溢出。接下来我们为溢出添加8和8 + 1以获得7,再次使用溢出。最后我们为溢出添加5和6 + 1以获得溢出2。因此,我们得到12722.现在想象一下这些数字中的每一个都是数组中的长数。
要检测溢出:如果你有两个正数,当加在一起时,只有当它们溢出时才会产生负数。因此,您只需要检查结果是否小于0,以检测是否需要将一个添加到下一对。
答案 1 :(得分:2)
如果您没有使用Big-
课程,我建议您使用String
进行一些解析,最好使用科学记数法来避免长String
“圣经” ,并尽可能保持代码结构在逻辑而非string
上运行(因为String
比较缓慢而且很重。)
编辑 - 注意:有关保持您的结构处理逻辑而不是字符串的含义的示例,请参阅Flying_Banana的答案。
了解如何使用Big-
类 。只要有可能, 不 代码 easy ; 执行 代码 正确 !