Project Euler - 016
本帖最后由 dorodaloo 于 2017-03-28 21:33 编辑2^15=32768 and the sum of its digits is 3+2+7+6+8=26.What is the sum of the digits of the number 2^1000?
翻译:
2^15 = 32768 并且其各位之和为 3+2+7+6+8=26.
[*]2^1000 的各位数之和是多少?
算是个有趣的问题,看似很简单,可还真不简单哦
蛮力太简单。
是否有更好的思路。 package main
func main() {
p016(15) // 26
p016(1000) // 1366
}
func p016(n int) {
var sum = 0
var num = []int{2}
for ; n > 1; n-- {
v := 0
for i := 0; i < len(num); i++ {
num *= 2
if v > 0 { num += v;v = 0 }
if num > 9 { num -= 10; v = 1 }
}
if v > 0 { num = append(num, 1) }
}
for _, v := range num { sum += v }
println(sum)
}
页:
[1]