Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод чисел содержащих "0" 
:(
    Опции темы
Extremist
Дата 16.8.2005, 09:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Извиняюсь за глупый вопрос, но понадобилось мне написать программку, которая из заданного диапазона чисел от 000001 до 999999 выводит все числа содержащие хотябы один "0". Может кто подскажет как организовать проверку этих самых нулей в числе? Заранее благодарен.
  Вверх
Hroft
Дата 16.8.2005, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 20.10.2003
Где: Москва

Репутация: нет
Всего: 3



Ну по крайней мере два подхода приходят на ум: самому генерировать все эти числа, фиксируя нули (рекурсия поможет), или же проверять поразрядно остаток от деления на 10. Первое сложнее, но, мне кажется, намного быстрее будет. И универсальнее.
PM MAIL ICQ   Вверх
Orlan
Дата 16.8.2005, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 10.6.2004
Где: Киев

Репутация: нет
Всего: 1



А можно преобразовывать в строку и искть 0 smile
--------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов
PM MAIL   Вверх
chaos
Дата 16.8.2005, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



дак конечно бустрее всего получиться искать в строке!
Можно еще и делить на 10, 100... как предложил Hroft

Это сообщение отредактировал(а) chaos - 16.8.2005, 10:47
PM WWW   Вверх
Mayk
Дата 16.8.2005, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Можно еще использовать массив из шести элементов(единицы, дестяки, сотни, т.д.)
Ну и соответственно инкрементировать в начале единицы. Если единицы >= 10, то скидывам в ноль(и, значит, выводим на печать) и инкрментируем десятки и т.д. Как только появляется нуль(и он не последняя цифра), то устанавливаем флаг - в таком-то разряде есть ноль. Главное не забыть флаг во время сбросить.
Но это фактически то, что предлагал Hroft.



--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Hroft
Дата 16.8.2005, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 20.10.2003
Где: Москва

Репутация: нет
Всего: 3



Про самое простое не подумал smile
Хотя не факт, что быстрее будет.
А мож просто вывести все числа с шагом 10 от 0? Что-нибудь не попадет? По-моему все выведутся. smile
PM MAIL ICQ   Вверх
Mayk
Дата 16.8.2005, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Цитата(Hroft @ 16.8.2005, 14:53)
А мож просто вывести все числа с шагом 10 от 0? Что-нибудь не попадет? По-моему все выведутся.

Так пропустятся кучу чисел: 401,402,403,404,405,406, etc.
Добавлено @ 11:10
Что-то я торможу сегодня. Единицы можно вывести самим.
Правда как тогда определить, что 111 не правильное число, а 1011 - правильное?



--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Hroft
Дата 16.8.2005, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 20.10.2003
Где: Москва

Репутация: нет
Всего: 3



Ну да. Даже если подправить - это плохой вариант.
PM MAIL ICQ   Вверх
Trotil
Дата 16.8.2005, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 31.7.2005

Репутация: нет
Всего: нет



А порядок важен?
PM MAIL   Вверх
Extremist
Дата 16.8.2005, 15:13 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Trotil @ 16.8.2005, 13:45)
А порядок важен?


Да.
  Вверх
maddoc
Дата 16.8.2005, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 364
Регистрация: 11.5.2005

Репутация: нет
Всего: 1



Код

int main(void)
{
   char string[15];
   char *ptr, c = '0';
for(i=999999;i>0;i--){
   strcpy(string, IntToStr(i));
   ptr = strchr(string, c);
   if (ptr)
      printf("The null %c is at position: %d\n", c, ptr-string);
   else
      printf("The null was not found\n");
   return 0;
}
}

Добавлено @ 16:01
тут кое что лишнее но сам поправиш


--------------------
"Безвыходных положений не бывает" (с) Камасутра
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0513 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.