Project Euler 016:2的1000次方的各数位之和

题目16:2的1000次方的各位之和是多少?

215 = 32768 并且其各位之和为  3 + 2 + 7 + 6 + 8 = 26.

21000 的各位数之和是多少?

 

挺简单,将21000用str()处理成字符串类型。

print(sum(int(i) for i in str(2**1000)))

 

再给个很naive的做法。。= =

View Code
digits = [1]

def time2():
    temp = 0
    for d in range(len(digits)):
        double = digits[d] * 2
        digits[d] = double % 10 + temp
        temp = int(double / 10)
    if temp:
        digits.append(temp)
        
def pe016(n):
    for i in range(n):
        time2()
    print(sum(digits))

if __name__ == '__main__':
    pe016(1000)

 

 

题目来源:

Project Euler: http://projecteuler.net/

PE中文站:http://pe.spiritzhang.com/index.php

 

posted @ 2012-12-11 10:35  river_run  阅读(297)  评论(0编辑  收藏  举报