#python
Вопрос:
Мне нужна помощь в написании скрипта на python для суммирования многозначного числа до тех пор, пока не останется одна цифра. Таким образом, любое число равно 10 или больше.
Например, программа примет 10 и вернет 1.
Числа 1-9 должны возвращаться как ошибка, а 0 должно возвращаться как 0. Записи, которые не являются int, также должны возвращать ошибку.
Я написал несколько версий этого, но, похоже, не могу заставить его работать так, как я хочу.
Вот некоторый код, с которым я работаю:
def SumDig(n):
n = []
if(not isinstance(n, int)) or (n <= 9) or (n >= 1):
return ("Error")
elif(n >= 10):
return (n - 1) % 9 1;
return SumDig(n)
Комментарии:
1. Если вам дали задание, вам, вероятно, следует просто поделиться текстом задания, потому что требование, которое вы указали выше, неясно. Я думаю, мы можем догадаться, что вам нужно сделать, но более точное утверждение помогло бы.
2. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы точно указать, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.
Ответ №1:
Вам не нужно, чтобы это было рекурсивно:
def sumDigits(N):
if N is 0: return 0
if not isinstance(N,int) or N < 10: return "error"
return (N-1)%9 1