Предмет: Информатика, автор: AoiK

Помогите решить на python или c++

Упорядоченные числа

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


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


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


Входные данные

Одно целое число b (1 ≤ b ≤ 109).


Выходные данные

Если существует такое число a, что после приведения его в порядок, получается b, то выведите любое такое число. Если же Миша где-то ошибся в расчетах и такого числа не существует, то выведите -1.

на python:
a=int(input())
s=1
f=True
while s:
____ch=s
____count=ch
____while ch>9:
________ch=sum(map(int,str(ch)))
________count+=ch
____if count==a:
________print(s)
________f=False
________break
____s+=1
if f:
____print(-1)

проходит 7/12 тестов


raf1O5: Разве у Миши не должно было получится однозначное число? Тогда во входных данных ошибка
raf1O5: А, извиняюсь
raf1O5: Всё верно
raf1O5: Какой вывод ожидался у второго теста?
AoiK: -1
raf1O5: Хорошо, вы написали 2 успешных теста
raf1O5: Можете написать тест который прошёл не успешно?
raf1O5: И ожидаемый вывод
AoiK: не могу поскольку не знаю какие тесты проходит задача
AoiK: задача с сайта https://www.e-olymp.com/ru/

Ответы

Автор ответа: raf1O5
0

a=(int(input()))

s= a//2

ch = 0

while s != a:

   ch=s

   count=ch

   while ch>9:

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

       count+=ch

   if count==a:

       print(s)

       break

   s+=1

else:

   print(-1)


AoiK: 7/12
AoiK: c a=abs(int(input())) 6/12 но нет неправильных
raf1O5: Как это нет неправильных? 6/12 это же означает что остальные 6 ответов из 12 неправильные?
AoiK: по времени не проходит но неизвестно правильный или нет ответ
raf1O5: Снова изменил ответ
AoiK: 8/12
AoiK: 3 - лимит
AoiK: 1 - неправильно
raf1O5: А на Pascal ответ нужен? Или именно на Python?
AoiK: Можна на Паскаль
Похожие вопросы
Предмет: История, автор: kalkataevamadina