Школа179: /Информатика//Информатика / Олимпиады/2008?//Информатика / Олимпиады / 2008 / Школьная//Информатика / Олимпиады / 2008 / Школьная / Разбор?/D ...

 
Это старая версия Информатика/Олимпиады/2008/Школьная/Разбор/D за 2008-02-12 14:47:05..

Разбор задачи C


Условия задачи четвертого тура


Пусть n – исходное число. Если n=1, то ответом является 1. Иначе будем нам необходимо представить n в виде произведения нескольких чисел (цифр) от 2 до 9.


При этом нам необходимо чтобы суммарное количество цифр было как можно меньше (тогда удастся составить меньшее число), кроме того, желательно использовать как можно большие цифры, тогда другие цифры получатся меньше и также можно будет составить меньшее число. Например, если необходимо представить требуемым образом число 24, то выгодно использовать делитель 8, т.к. тогда удасться представить число 24=3*8. Если же не использовать делитель 8, а использовать делитель 6, то получится худшее представление: 24=4*6.


Таким образом, будем делить число последовательно на цифры 9, 8, 7, 6, 5, 4, 3, 2, пытаясь получить в разложении большие цифры. Для нахождения минимального числа полученные цифры необходимо будет записать в обратном порядке.


Также следует учесть проблему переполнения результата: например, если исходное число равно 510=9765625, то правильный ответ будет иметь вид 5555555555, и его невозможно будет записать в переменной типа int. Поэтому результат будем записывать в строку Result.




 
Файлов нет.[Показать файлы/форму]