Форум программистов, компьютерный форум, киберфорум
Наши страницы
Python
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.79/19: Рейтинг темы: голосов - 19, средняя оценка - 4.79
Искорка Яркая
0 / 0 / 0
Регистрация: 26.09.2016
Сообщений: 29
1

Сумма цифр в числе

10.02.2017, 16:48. Просмотров 3574. Ответов 4
Метки нет (Все метки)

Необходимо создать функцию, которая будет возвращать сумму цифр в числе. Причём, если в полученной сумме больше одной цифры, то необходимо повторить операцию, пока сумма не будет состоять из единственной цифры.
Например: 99 = 9+9 = 18 => 18 = 1+8 = 9.

Python
1
2
3
4
5
6
7
8
def digital_root(n):
    n = str(n)
    S = 0
    i = 0
    while i<len(n):
        S = S + int(n[i])
        i+=1
    return S
Эта программа возвращает сумму, независимо от того, сколько в ней цифр.
Как продолжить вычисление до тех пор, пока сумма не будет единственным числом?
Благодарю за ответ.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.02.2017, 16:48
Ответы с готовыми решениями:

Как посчитать количество цифр в числе?
Для каждого пункта напишите функцию, возвращающую ответ. 0) Дано число,...

Подсчитать количество цифр в заданном числе
Доброго времени суток! Задача: Подсчитать количество цифр в заданном числе...

Массив: Найти в каждом числе последовательности количество четных и нечетных цифр
Вводится последовательность чисел, 0 - конец последовательности. Найти в каждом...

Является ли сумма цифр числа двухзначным числом / произведение цифр числа трехзначным числом
Дано трехзначное число. Определить: а) является ли сумма его цифр двухзначным...

Найти количество трехзначных чисел, сумма цифр которых равна А
Найти количество трехзначных чисел, сумма цифр которых равна А, а само число...

4
Garry Galler
1529 / 1222 / 458
Регистрация: 28.10.2013
Сообщений: 3,073
10.02.2017, 17:48 2
Лучший ответ Сообщение было отмечено Искорка Яркая как решение

Решение

Python
1
2
3
4
5
number = input()    
while len(number)>1:
    number = str(sum(int(i) for i in number))
 
print(number)
3
dondublon
2147 / 1065 / 213
Регистрация: 17.03.2012
Сообщений: 6,429
Записей в блоге: 5
10.02.2017, 17:55 3
Или так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def sumsum(n0):
    def digital_root(n):
        n = str(n)
        S = 0
        i = 0
        while i<len(n):
            S = S + int(n[i])
            i+=1
        return S
    s = digital_root(n0)
    if len(str(s)) == 1:
        return s
    else:
        return digital_root(s)
Саму digital_root можно сократить, конечно, но я не заморачивался.
1
Kir-malishev
71 / 71 / 57
Регистрация: 07.08.2016
Сообщений: 173
10.02.2017, 20:06 4
dondublon, у Вас функция только один раз проверяет длину.
Если ввести, например, 55555555555, выведет 10. А должо вывести 1.
0
philat
111 / 111 / 16
Регистрация: 19.08.2013
Сообщений: 298
10.02.2017, 20:42 5
Kir-malishev, в 14 строчке должно быть
Python
1
return sumsum(s)
1
10.02.2017, 20:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2017, 20:42

Сумма числовых значений цифр, входящих в текст, равна длине текста
Не могу понять как реализировать это приложение. Программа. В заданный...

Существуют ли два последовательных натуральных числа, сумма цифр каждого из которых делится на 7?
Известна математическая задача: &quot;Существуют ли два последовательных натуральных...

Вывод в порядке возрастания всех трехзначных чисел, сумма цифр которых равна n
вот,что накидала: но программа выдает при выводе n n=int(input()) for i in...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru