|
0 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 6
|
|
Как вывести числа от 1 до 1000 без сравнений в Си++?02.03.2011, 18:08. Показов 25496. Ответов 68
Метки нет (Все метки)
Привет всем.
Получил на собеседовании по Си++ такой странный вопрос, подумал, ещё подумал. Ничего путного в голову не пришло. Вообщем стало дико любопытно, а как это сделать средствами Си++? Переадресую вопрос умным головам форума. Подскажите. ![]() P.S. Человек с которым общался явно знал не менее двух решений. Но я был не в том положении, чтобы спрашивать у него.
0
|
|
| 02.03.2011, 18:08 | |
|
Ответы с готовыми решениями:
68
Вывести все числа из диапазона от 0 до 1000, которые делятся на 2 и на 3 без остатка (for, while) Найти числа, меньше 1000, сумма делителей (без самого числа) которых, больше данного числа
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 16.03.2011, 00:53 | ||||||
|
А это тоже считается?
0
|
||||||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
|
|
| 16.03.2011, 01:01 | |
|
а если так
for(int i=1000;i;i--) printf("%d",1001-i);
0
|
|
|
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
|
|
| 16.03.2011, 01:04 | |
|
ForEveR, алгоритмы в большинстве своём — оболочки для циклов, так что не, не считается :) .
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 16.03.2011, 01:09 | |
|
ValeryS, думаете, в вашем коде нет сравнений?
0
|
|
|
0 / 0 / 0
Регистрация: 09.03.2011
Сообщений: 4
|
|
| 16.03.2011, 01:11 | |
|
А метки и переходы никак?)
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
|
||
| 16.03.2011, 01:23 | ||
|
когда скомпилируется может быть и будут( в машинных кодах) зависит от архитектуры здесь используется два допущения 1 в С 0 false любое число true 2 цикл for крутится до тех пор пока условие(вторая запись) true т.е. будет крутится пока i не станет 0
0
|
||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 16.03.2011, 01:25 | |
|
ValeryS, т.е. происходит неявное сравнение с нулём. Т.е. факт сравнения налицо.
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
|
|
| 16.03.2011, 01:26 | |
|
можно написать и так
for(int i=1;i%1001;i++) но такой вариант с while уже писали
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 16.03.2011, 01:28 | |
|
И снова неявное сравнение с нулём. Циклы тут не прокатят.
0
|
|
|
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
|
|
| 16.03.2011, 01:29 | |
|
помоему задачу надо было ставить более конкретно:
запрещены команды j** (исключая jmp; или cmp\test ?) и команды цикла, такие как loop любое условный переход создаст в конечном коде инструкцию j** цикл - либо создаст loop (выполнится ecx раз) либо j**
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
|
|
| 16.03.2011, 01:29 | |
|
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 16.03.2011, 01:31 | |
|
ValeryS, факт неявности не исключает факт сравнения.
Добавлено через 50 секунд nxnx, ну почему же, бесконечный цикл, судя по всему, использовать разрешается.
0
|
|
|
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
|
|
| 16.03.2011, 01:32 | |
|
1
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 16.03.2011, 01:34 | |
|
nxnx, а, да, извиняюсь. Невнимательно прочитал ваше сообщение.
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
|
|
| 16.03.2011, 01:34 | |
|
в архитектуре ATmega есть набор команд которые выполняются в зависимости от флага
а флаг выставляется не только операциями сравнения. поэтому я и написал в С НЕТ сравнений а в машинных кодах как повезет разговор по моему о С
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 16.03.2011, 01:37 | |
|
ValeryS, во-первых, разговор, по-моему, о Си++. Во-вторых, всю жизнь думал, что while (i % 1001) эквивалентно while (i % 1001 != 0). Или я чего-то не понимаю?
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
|
||
| 16.03.2011, 01:46 | ||
|
в первом случае i % 1001 у тебя будут значения от 0 до 1000 (далее по циклу) во втором i % 1001 != 0 только два значения истина и ложь стандарт нам обещает только что ЛОЖЬ =0 ИСТИНА любое другое значение о том что значение будет сравниваться с 0 никто не обещает и то что это делают компиляторы для ИНТЕЛа не факт что будут делать на других процессорах
0
|
||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 16.03.2011, 01:48 | |
|
ValeryS, не понимаю, если мы сейчас говорим о сях, о какой истине или лжи идёт речь?
0
|
|
|
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
|
||||||||||||||||
| 16.03.2011, 01:50 | ||||||||||||||||
0
|
||||||||||||||||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
|
||
| 16.03.2011, 01:55 | ||
|
а если так рассуждать то здесь тупо подойдет только второй пост
printN<500>(); компилятор скорее всего загонит в цикл Добавлено через 3 минуты true false BOOL TRUE FALSE
0
|
||
| 16.03.2011, 01:55 | |
|
Написать функцию, которая получает 2 целых числа и возвращает большее из них без циклов, ветвлений и сравнений
Вывести простые числа на интервале от 2 до 1000 Вивести на екран усі числа, що діляться на 11 без остачі від 11 до 1000 крім 110 і 220. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|