作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经解决了项目欧拉问题 16,但发现了这种相当新颖的方法,但我无法理解所采用的技术(来自 http://www.mathblog.dk/project-euler-16/):
int result = 0;
BigInteger number = BigInteger.Pow(2, 1000);
while (number > 0) {
result += (int) (number % 10);
number /= 10;
}
我的版本似乎更传统,但我认为上述方法更酷。
var result = BigInteger
.Pow(2, 1000)
.ToString()
.Aggregate(0, (total, next) => total + (int) Char.GetNumericValue(next));
第一种方法的数学原理如何,很酷,但我需要一些解释来帮助我理解,所以如果有人愿意向我解释,我将不胜感激。
注意:如果我在错误的部分发帖,请让我知道更好的提问位置。
最佳答案
value % 10
将返回最后一位数字(除以 10 后的余数)。将整数除以 10 将删除该数字。
将数字想象成一个列表,您只需将列表出队并对值求和即可。
关于c# - 这段 C# 代码如何得出答案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11971905/
这个问题在这里已经有了答案: Why are these constructs using pre and post-increment undefined behavior? (14 个答案) 关
我是一名优秀的程序员,十分优秀!