У Миши развитое эстетическое чувство. Он считает, что не все числа

У Миши развитое эстетическое чувство. Он считает, что не все числа идиентично добропорядочные. Когда ему печально, он начинает придумывать числа и приводить их в порядок.

Миша очень любит разглядывать сумму цифр числа. Для того чтобы привести в порядок число A, он сначала записывает само число. Позже он пишет сумму цифр этого числа. Потом сумму цифр суммы цифр и так далее, до тех пор, пока еще одно число не станет конкретным. Он считает, что результатом приведения в порядок числа A является сумма всех выписанных чисел, включая само число A.

Миша настолько любит этот процесс, что он даже сменяет ему счёт овец, когда длинно не получается заснуть. Он помнит, что вчера ночкой, когда он в разуме привёл в порядок число A, у него получилось число B. Но вот неудача он не помнит, какое именно он взял число A! Помогите ему в отыскании этого числа.

Входные данные
На ввод подаётся единственное целое число B (1 B 109 )

Выходные данные
Если существует такое число A, что после приведения его в порядок, выходит B, то выведите хоть какое такое число. Если же Миша где-то ошибся в расчётах и такового числа не существует, то выведите -1.

Образцы тестов

входные данные
42
выходные данные
29

входные данные
20
выходные данные
-1

Примечание

Объяснение к первому образцу. Последовательность сумм цифр для 29 состоит из чисел 29, 11, 2. Соответственно, после приведения в порядок число 29 преобразуется в число 42 = 29 + 11 + 2.

решал вот так,
def order(n):
return n + order(sum(map(int, str(n)))) if n gt; 9 else n
def main():
n = int(input())
for i in range(105):
if order(i) == n:
print(i)
break
else:
print(-1)
if __name__ == "__main__":
main()

но прошло только 8/12 тестов.
Язык любой, если что в питон сам переведу.
Стоимость высока!!!

Задать свой вопрос
1 ответ

a = int(input())

s = 1

flag = True

while s lt; a:

   ch = s

   count = ch

   while ch gt; 9:

       ch = sum(map(int,str(ch)))

       count += ch

   if count == a:

       print(s)

       flag = False

       break

   s += 1

if flag:

   print(-1)

Jurka Arepin
нет, проходит только 7/12 тестов, когда мой проходит 8/12
Мостославская Валентина
Function sumdigits(n As Integer) As IntegerDim a(1 To 126), i, j, k, l, s, tt1, t1 As IntegerFor l = 1 To 126a(l) = -1Next lFor l = 1 To 109i = Fix(l / 100)j = Fix((l - 100 * i) / 10)k = l - 100 * i - j * 10s = i + j + ktt1 = Fix(s / 10) + (s Mod 10)t1 = Fix(Log(s) / Log(10))s = s + t1 * tt1 + la(s) = lNext lsumdigits = a(n)End Function'Excel VBA
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт