dorodaloo 发表于 2017-03-28 21:31

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 的各位数之和是多少?

dorodaloo 发表于 2017-03-31 09:00

算是个有趣的问题,看似很简单,可还真不简单哦
蛮力太简单。
是否有更好的思路。

dorodaloo 发表于 2017-04-01 13:31

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]
查看完整版本: Project Euler - 016