|
0 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 6
|
|
Как вывести числа от 1 до 1000 без сравнений в Си++?02.03.2011, 18:08. Показов 25288. Ответов 68
Метки нет (Все метки)
Привет всем.
Получил на собеседовании по Си++ такой странный вопрос, подумал, ещё подумал. Ничего путного в голову не пришло. Вообщем стало дико любопытно, а как это сделать средствами Си++? Переадресую вопрос умным головам форума. Подскажите. ![]() P.S. Человек с которым общался явно знал не менее двух решений. Но я был не в том положении, чтобы спрашивать у него.
0
|
|
| 02.03.2011, 18:08 | |
|
Ответы с готовыми решениями:
68
Вывести все числа из диапазона от 0 до 1000, которые делятся на 2 и на 3 без остатка (for, while) Найти числа, меньше 1000, сумма делителей (без самого числа) которых, больше данного числа
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 16.03.2011, 01:56 | |
|
0
|
|
|
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
|
|||||||
| 16.03.2011, 01:57 | |||||||
0
|
|||||||
| 16.03.2011, 01:58 | |
|
Не по теме: Ладно, что-то я завёлся, видать, пора идти баиньки, а то мозг неадекватно на недосыпание реагирует...
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,874
|
|||||||
| 16.03.2011, 02:03 | |||||||
|
сравнение насколько я помню cmp и еще раз повторю это для intel для других процессоров будет по другому и даже если так
Добавлено через 3 минуты самое смешное что если было бы число меньше 1000 допустим 10 компилятор мог спокойно развернуть цикл
0
|
|||||||
|
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
|
||||||||
| 16.03.2011, 02:05 | ||||||||
Но можно ли такое использовать под вопросом. Сама операция сравнение делится на два этапа: команда меняющая флаги + j** Добавлено через 1 минуту то это тоже будет решением.
0
|
||||||||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,874
|
||
| 16.03.2011, 02:17 | ||
|
nxnx
а ты с оптимизацией прокомпилируй Добавлено через 5 минут может там какой-нибудь триггер переключается Ты знаешь схемотехнику Пентиума? я нет поэтому утверждать что идет сравнение не могу Почему тогда нет неявного сравнения с другим числом Добавлено через 3 минуты неявное сравнение с нулем это из человеческой логики типа если регистр (не)равен 0 то переходим по машинному если (не)установлен флаг а флаг может установить кто угодно вплоть до записи в регистр флагов
0
|
||
|
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
|
||
| 16.03.2011, 02:19 | ||
|
Ибо большинство на них.
0
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,874
|
|||||||
| 16.03.2011, 02:43 | |||||||
|
Добавлено через 14 минут чей то навеяло
0
|
|||||||
|
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
|
||||||
| 16.03.2011, 02:48 | ||||||
|
чтобы однозначно решить такую задачу, в условии нужно писать архитектуру и какие можно использовать инструкции, и в соотв с этим создавать код.
Сравнение это всётаки j**, поскольку test\cmp не всегда есть и они аналоги and\sub по флагам. Но можно его представить как условный переход, тоже верно, в зависимости от логики программы. gcc отказался разворачивать цикл кстати. Добавлено через 1 минуту я тоже думал про вариант с исключением, можно попытатся сделать так чтобы вылетало при попытке записать туда, куда нельзя записывать. Добавлено через 3 минуты но всётаки вариант с исключением это уже немного не то) хотя в нём нету ни j** ни cmp\test ни loop)
0
|
||||||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,874
|
||
| 16.03.2011, 02:51 | ||
|
Ни каждый кто хорошо знает С С++ хорошо знает ассемблер. тем более во что превратится его код надо задавать уровень абстракции например не использовать < , > ==, и т.д. или не использовать циклы или рекурсии или ни того не другого Добавлено через 1 минуту кстати исключение можно и в рекурсию запихнуть
0
|
||
|
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
|
|
| 16.03.2011, 02:52 | |
|
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,874
|
|
| 16.03.2011, 02:53 | |
|
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,874
|
|
| 16.03.2011, 19:47 | |
|
Visual C 2008
тоже не захотел разворачивать цикл причем for(int i=0;i<1;i++) честно выкинул цикл а уже при 2 создал цикл как я его не упрашивал Посему вопрос Могут ли компиляторы разворачивать циклы или это фантастика?? хотя цикл for(int i=0;i<10;i++) m+=i; по моему все компиляторы выбросят
0
|
|
|
0 / 0 / 0
Регистрация: 12.04.2008
Сообщений: 14
|
|
| 16.03.2011, 20:53 | |
|
0
|
|
|
|
||
| 16.03.2011, 21:40 | ||
|
0
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,874
|
|
| 16.03.2011, 22:04 | |
|
Я догадываюсь зачем разворачивают цикл
Ho nxnx на gcc, а я на VS не смог хотя включал и быстрый код и оптимизацию по скорости Поэтому и возник вопрос
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,874
|
|||
| 16.03.2011, 22:33 | |||
|
Где ж их смотреть то???
MSDN
Добавлено через 1 минуту кстати плохой пример этот цикл должен выкинутся и добавится константа Добавлено через 4 минуты пардон ступил
0
|
|||
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
||||||
| 17.03.2011, 05:17 | ||||||
|
притянуто конечно..
0
|
||||||
| 17.03.2011, 05:17 | |
|
Помогаю со студенческими работами здесь
60
Написать функцию, которая получает 2 целых числа и возвращает большее из них без циклов, ветвлений и сравнений
Вывести простые числа на интервале от 2 до 1000 Вивести на екран усі числа, що діляться на 11 без остачі від 11 до 1000 крім 110 і 220. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения
Продолжаю серию постов о дискретно-событийной модели рабочего. . .
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|