Суммируйте цифры числа - Python

Если я хочу найти сумму цифр числа, т.е.:

  • Вход: 932
  • Вывод: 14, который является (9 + 3 + 2)

Каков самый быстрый способ сделать это?

Я инстинктивно сделал:

sum(int(digit) for digit in str(number))

и я нашел это онлайн:

sum(map(int, str(number)))

Который является лучшим для использования для скорости и является там какими-либо другими методами, которые еще быстрее?

61
задан 6 January 2017 в 20:44

3 ответа

Попробуйте это

    print(sum(list(map(int,input("Enter your number ")))))
0
ответ дан 31 October 2019 в 15:54
reduce(op.add,map(int,list(str(number))))

Тест:

from datetime import datetime
number=49263985629356279356927356923569976549123548126856926293658923658923658923658972365297865987236523786598236592386592386589236592365293865923876592385623987659238756239875692387659238756239875692856239856238563286598237592875498259826592356923659283756982375692835692385653418923564912354687123548712354827354827354823548723548235482735482354827354823548235482354823548235482735482735482735482354823548235489235648293548235492185348235481235482354823548235482354823548235482354823548234



startTime = datetime.now()

for _ in  range(0,100000) :
    out=reduce(op.add,map(int,list(str(number))))

now=datetime.now()
runningTime=(now - startTime)

print ("Running time:%s" % runningTime)
print(out)

Рабочий time:0:00:13.122560 2462

0
ответ дан 31 October 2019 в 15:54

Найденный этим на одной из проблемы, решая веб-сайты проблемы. Шахта Not, но это работает.

num = 0 #replace 0 with whatever number you want to sum up print(sum([int(k) for k in str(num)]))

0
ответ дан 31 October 2019 в 15:54

Другие вопросы по тегам:

Похожие вопросы: