| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Object Pascal: кроссплатформенные технологии > Задача |
| Автор: Spaun 9.12.2004, 22:18 | ||
| Число из N цифр называется числом Армстронга, если сумма цифр, возведенных в N-ю степень, равна самому числу. Написать программу нахождения все чисел Армстронга, состоящих из двух, трех и четырех цифр или вывести сообщение о том, что таких чисел нет. Вот я ее решил, только мне метод не нравится, уж черезчур в лобовую. Может кто-нибудь подскажет, каким другим способом ее можно решить?
Прошу сильно не бить... |
| Автор: Dimich 10.12.2004, 13:45 |
| А зачем рассматривать варианты из 2,3 и 4 цифр? Может красивше будет написать универсальный вариант? Т.е. передрать в цикле все числа от 10 до 9999, разбирать их на цифры и проводить с ними вычисления? |
| Автор: Akina 10.12.2004, 14:10 | ||||||
это правильнее...
это неоптимально. Напрашивается рекурсия. На входе - очередное (недо)число, потребное кол-во цифр. Если кол. цифр в числе менее потребного - организуем цикл от 0 до 9, дописываем к числу цифру, вызываем себя, передавая число, к коему дописАли очередную цифирь. Если кол. цифр в числе равно нужному - проверяем, является ли оно числом А., при положительном ответе сообщаем об этом. Типа
|
| Автор: Elfin 13.12.2004, 01:03 | ||
| Spaun Да мне точно такую же задачу в универе задавали.... Ты случаем не из Челябинска?
|
| Автор: Romtek 7.1.2005, 12:52 |
| Тут решение покрасивее: http://forum.sources.ru/index.php?showtopic=53804&hl=%C0%F0%EC%F1%F2%F0%EE%ED%E3 |