Здравствуйте, olimp_20, Вы писали:
_>Проблема: задача вроде бы и элементарная, и почти решена, но два теста №24 и №25 — не проходит. Закончились идеи: что проверять и какие числа могут быть во входном файле...Подскажите, что еще необходимо проверить или где ошибка в алгоритме. Спасибо.
Стандартный способ: оформите своё нахождение как функцию, возвращающую искомое число как int, напишите другую функцию, которая делает это честно (перебирает все натуральные числа до N, и находит то, в котором наибольшая сумма цифр), после чего переберите все N до десяти тысяч, вычисляя результат каждой из двух функций, распечатайте те N, для которых результаты разные. Скорее всего такие найдутся даже до тысячи.
Читерский способ: перебираете все числа до N, но не (только) в виде инта, а в виде массива цифр, инкремент обычно будет сводиться к увеличению последней цифры, изредка — к старшим. При каждом инкременте соответственно изменяйте сумму цифр. Всего получите несколько миллиардов тактов, есть шанс уложиться, если сделаете аккуратно.
ЗЫ: большая просьба исходные тексты постить не только в тексте сообщения в блоке code, там съедаются переводы строк при попытке скопировать в файл, но и на хостинге типа ideone.com, там их можно будет сразу и запустить, потестировать.
Upd: для 190 Ваша программа выведет 99, а правильный ответ 189 (сумма цифр тоже равна 18, а само число больше).