![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 18.09.2010
Сообщений: 56
|
![]()
Найти все трехзначные числа, которые содержат только нечетные цифры. Помогите с этой задачкой пожалуйста
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
![]()
господа студеоузы, указывайте же, наконец, язык!!
Pascal: Код:
Код:
Добавлено: Упс, извиняюсь, my bad - не посмотрел, в каком разделе нахожусь.. )) ладно, не буду стирать )
Предпочитаю на "ты".
Последний раз редактировалось TinMan; 02.10.2011 в 01:59. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 29.06.2008
Сообщений: 603
|
![]()
Если скорость не важна, то самое простое на мой взгляд IntToStr + if ch in ['1', '3','5','7','9'] then
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
_Engine_,
во-первых, в Паскаль нет IntToStr (это Дельфийская функция). Тогда уже str() во-вторых, это сложнее (помимо основного цикла от 100 до 999 нужно будет ещё и цикл по строке организовывать) в-третьих, а чем Вам вариант от TinMan с тремя циклами не понравился?! Чётко, быстро, понятно, надёжно. в-чётвёртых, разумеется, такую задачу можно решить множеством способов. вот, например, так: Код:
![]() Последний раз редактировалось Serge_Bliznykov; 02.10.2011 в 10:48. |
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
![]()
Случайно забежал в эту тему снова..
![]() Цитата:
Это решение, наверное, самое быстрое, но у него есть ооочень большой (IMHO) недостаток: оно не масштабируется. Я написал его потому, что оно максимально хорошо гармонирует с нзванием темы - в нем только FOR, и ничего больше )). Я бы вряд ли стал его применять для практических целей (точнее - вряд ли такие узкие практические цели найдутся). Решение, которое добавил Серж, имеет избыточно длинный цикл, но ЗАТО это полпути к масштабируемости - и это может оказаться важнее. Для полного воплощения масштабирования нужен цикл для разбиения на цифры. Как-то так.. Код:
Код:
![]() Чтобы сделать одновременно И масштабируемо, И без лишних проходов, нужна рекурсия, а она сама по себе неэффективна ((, да и не по теме. Можно, конечно, обойтись без нее, но только ценой сложных конструкций с массивами.. Решение с переводом в строку - я признаю, что в нем есть своя соль, и оно может иногда быть полезным, но у меня к таким вещам какая-то внутренняя неприязнь - нет в них изюминки (помимо их малой эффективности)). К слову сказать, недавно я пытался написать решение для палиндромов (в этой теме) и тоже не захотел использовать строки. Но палиндромы - как раз именно тот случай, где лучше использовать именно их. В результате я все же сделал, но это стоило мне немалых трудов )). В той теме на мой призыв никто не откликнулся - пожалуй, я сейчас все же выложу тот код, чтоб "продукт не пропадал" )).
Предпочитаю на "ты".
|
|
![]() |
![]() |
![]() |
#6 | ||
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
![]()
TinMan
Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 18.09.2010
Сообщений: 56
|
![]()
TinMan спасибо огромное ты очень помог!
|
![]() |
![]() |