|
0 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 6
|
|
Как вывести числа от 1 до 1000 без сравнений в Си++?02.03.2011, 18:08. Показов 25438. Ответов 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,875
|
|||||||
| 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,875
|
||
| 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,875
|
|||||||
| 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,875
|
||
| 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,875
|
|
| 16.03.2011, 02:53 | |
|
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
|
|
| 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,875
|
|
| 16.03.2011, 22:04 | |
|
Я догадываюсь зачем разворачивают цикл
Ho nxnx на gcc, а я на VS не смог хотя включал и быстрый код и оптимизацию по скорости Поэтому и возник вопрос
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
|
|||
| 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 | |
|
Написать функцию, которая получает 2 целых числа и возвращает большее из них без циклов, ветвлений и сравнений
Вывести простые числа на интервале от 2 до 1000 Вивести на екран усі числа, що діляться на 11 без остачі від 11 до 1000 крім 110 і 220. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Новости компьютерного мира и их обсуждение (4)
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|