| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Вывод чисел содержащих "0" |
| Автор: Extremist 16.8.2005, 09:47 |
| Извиняюсь за глупый вопрос, но понадобилось мне написать программку, которая из заданного диапазона чисел от 000001 до 999999 выводит все числа содержащие хотябы один "0". Может кто подскажет как организовать проверку этих самых нулей в числе? Заранее благодарен. |
| Автор: Hroft 16.8.2005, 10:07 |
| Ну по крайней мере два подхода приходят на ум: самому генерировать все эти числа, фиксируя нули (рекурсия поможет), или же проверять поразрядно остаток от деления на 10. Первое сложнее, но, мне кажется, намного быстрее будет. И универсальнее. |
| Автор: Orlan 16.8.2005, 10:39 |
| А можно преобразовывать в строку и искть 0 |
| Автор: chaos 16.8.2005, 10:41 |
| дак конечно бустрее всего получиться искать в строке! Можно еще и делить на 10, 100... как предложил Hroft |
| Автор: Mayk 16.8.2005, 10:51 |
| Можно еще использовать массив из шести элементов(единицы, дестяки, сотни, т.д.) Ну и соответственно инкрементировать в начале единицы. Если единицы >= 10, то скидывам в ноль(и, значит, выводим на печать) и инкрментируем десятки и т.д. Как только появляется нуль(и он не последняя цифра), то устанавливаем флаг - в таком-то разряде есть ноль. Главное не забыть флаг во время сбросить. Но это фактически то, что предлагал Hroft. |
| Автор: Hroft 16.8.2005, 10:53 |
| Про самое простое не подумал Хотя не факт, что быстрее будет. А мож просто вывести все числа с шагом 10 от 0? Что-нибудь не попадет? По-моему все выведутся. |
| Автор: Mayk 16.8.2005, 11:05 | ||
Так пропустятся кучу чисел: 401,402,403,404,405,406, etc. Добавлено @ 11:10 Что-то я торможу сегодня. Единицы можно вывести самим. Правда как тогда определить, что 111 не правильное число, а 1011 - правильное? |
| Автор: Hroft 16.8.2005, 11:10 |
| Ну да. Даже если подправить - это плохой вариант. |
| Автор: Trotil 16.8.2005, 13:45 |
| А порядок важен? |
| Автор: Extremist 16.8.2005, 15:13 | ||
Да. |
| Автор: maddoc 16.8.2005, 15:54 | ||
Добавлено @ 16:01 тут кое что лишнее но сам поправиш |