我在尝试在算术系列中添加数字时尽量减少开销。我说的是一个非常大的集合,例如从1到2 ^ 128。这样做有什么快捷的方法吗?如果是这样,没有实际使用算术序列和公式会是什么?作为参考,1到2 ^ 128之和为:
57896044618658097711785492504343953926464851149359812787997104700240680714240
答案 0 :(得分:0)
只有快速的方法才能使用公式:
n * (n+1) / 2
任何其他方法(天真地添加)将花费太长时间! (即使你在超级计算机上有一百万年,你也不会完成计算)。
虽然对于这么大的整数,你不能使用普通整数。您将需要使用一个大整数对象。所以得到一个Big Integer库,例如。 Google search,https://mattmccutchen.net/bigint/。
注意:256位整数可能能够将结果保持在该范围内,但它与平台和编译器有关,关于256位整数是否随时可用,以及它们是如何使用的。< / p>