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