|
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 26
|
|
Инкремент в произведении29.10.2015, 21:14. Показов 1352. Ответов 9
Метки нет (Все метки)
Друзья, на ерунде запнулся, допустим:
n = 2000; тогда в какой последовательности нужно решать вот это выражение: --n*n*n = ? собственно в компиляторе ответ -601928593, не могу повторить его на калькуляторе знаю что у инкремента более высокий приоритет, но вот всё ли выражение попадает под инкремент мне не совсем ясно, умножив 1999 *2000 * 2000 не выходит результат, а тем более отрицательный, умножив 1999*1999*1999 тоже не получается.., что интересно выражение: --n*n = 3996001 (среда вычисляет) что соответствует выражению: 1999*1999 то-есть получается инкремент сработал на обе "n", хотя три "n" того же ответа, что и компилятор, не дают. Короче говоря, я уверен ответ будет очень короткий и простой ))) тем не менее подскажите пожалуйста в какой последовательности выполняется данное выражение
0
|
|
| 29.10.2015, 21:14 | |
|
Ответы с готовыми решениями:
9
Найти минимальное в произведении чисел Определить количество членов в произведении в зависимости от погрешности
|
|
19497 / 10102 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
|
||
| 29.10.2015, 21:35 | ||
|
Gloat, короткий ответ: Порядок вычисления операндов операторов и порядок вычисления аргументов функции не определен. Поэтому вопрос
Подробнее тут: http://ru.cppreference.com/w/c... eval_order
1
|
||
|
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
|
|
| 29.10.2015, 21:36 | |
|
Gloat, у меня в Студии вывод: 7.98801е+09
1
|
|
|
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 26
|
||||||
| 29.10.2015, 22:52 [ТС] | ||||||
|
kalonord,
n=2000 -601928593 --n*n*n=-601928593 Для продолжения нажмите любую клавишу . . . вот что вывел у меня компилятор Добавлено через 29 минут DrOffset, Пробежал глазами статью, правильно я понял, что надо смотреть по контексту как работает.., ладно, вот чуть более полный код: while (--n*n*n % 1000 == k ? b = a, a = n : n); короче говоря, задание звучит так, "k" это некое число состоящее из трёх цифр, нужно найти такое число, которое при возведении в третью степень будет иметь на конце три цифры равными "k", собственно, в одном из решений, которые я там увидел была вот эта строка, хотя о чем это я.., эта строка и есть решение (если быть точным, там надо найти два числа, минимальное, и максимальное(максимальное должно соответствовать ряду условий, не буду вдаваться в подробности)) ну так вот, ну так о чем я... вот этот инкремент, модифицирует "n", уменьшая его от 2000, но вопрос-то в том, что я не могу получившееся выражение из --n*n*n (первое, когда n ещё равно 2000) вычислить на калькуляторе, как он это сделал
0
|
||||||
|
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
|
|
| 29.10.2015, 23:51 | |
|
Gloat,
вообще максимум знакового int составляет 2147483647, если больше, то переполнение и, соответственно, отрицательное значение.
1
|
|
|
19497 / 10102 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
|
||||||||
| 30.10.2015, 10:48 | ||||||||
Сообщение было отмечено Gloat как решение
РешениеПереписывай его так, чтобы исключить UB. Не надо гоняться за однострочниками - это блажь. Например, если необходимо, чтобы сначала был выполнен декремент, то так и пиши:
1
|
||||||||
|
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 26
|
||
| 30.10.2015, 13:01 [ТС] | ||
|
DrOffset, я просто хотел понять закономерность исполнения этой строки компилятором,
0
|
||
|
19497 / 10102 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
|
|||
| 30.10.2015, 13:16 | |||
![]()
1
|
|||
|
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 26
|
|
| 30.10.2015, 13:23 [ТС] | |
|
на самом деле, такое сокращение решения было вызвано поставленными условиями (задание надо было сделать как можно меньшим количеством символов).., но я понял наставления, что так делать нельзя ))) спасибо.
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 30.10.2015, 20:22 | |
|
1
|
|
| 30.10.2015, 20:22 | |
|
Помогаю со студенческими работами здесь
10
Рекурсия: количество возможных расстановок скобок в произведении n чисел Сколько сомножителей надо взять в произведении, чтобы равенство выполнялось с точностью ε
Инкремент и преинкремент Инкремент переменной Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|