【发布时间】:2011-03-11 17:53:35
【问题描述】:
给定一个很大的数字,例如9223372036854775807 (Int64.MaxValue),求和的最快方法是什么?
目前我正在 ToStringing 并将每个字符重新解析为 int:
num.ToString().Sum(c => int.Parse(new String(new char[] { c })));
这肯定是非常低效的。有什么建议吗?
最后,您将如何使用 BigInteger 进行这项工作?
谢谢
【问题讨论】:
-
这被称为数字的“面值”,顺便说一句。
-
我们是否必须允许最大值为 MAX_INT?
-
如果你真正想要的是repeated sum,那么有一个窍门。看到这个最近的问题:stackoverflow.com/questions/5151224/…