Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/29: Рейтинг темы: голосов - 29, средняя оценка - 4.55
-23 / 0 / 2
Регистрация: 15.03.2013
Сообщений: 328
1

Цикл while, остаток от деления нацело

18.04.2014, 21:23. Показов 5755. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется цикл while:
C++
1
2
3
4
5
6
7
8
unsigned int d = d & 0x00000000;
    unsigned int e_simple = e_simple & 0x00000000;
 
    while (e_simple !=1)
    {
        d += 1;
        e_simple = (e*d)%y_n;
    }
допустим e == 83, y_n == 14904
тогда у меня при запуске цикла d получается 5387;

Но, если посчитать на калькуляторе, то (83*5387)/14904 = 30,000067. Т.е. c цикла выходит при таком значении, а должно выходить при единице.
Спасибо всем за помощь.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.04.2014, 21:23
Ответы с готовыми решениями:

Найти частное и остаток от деления нацело без операции деления
1)Дано целое число A (> 0) и целое число B (> 0). Найти долю Q и остаток R от деления нацело числа...

Найти частное от деления нацело N на K, а также остаток от этого деления
While3. Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найти...

Не могу понять ошибку. Остаток от деления нацело
a%pow(10,kolvo1); Ошибка переменной "а"(переменная типа int): Выражение должно относиться к...

Усовершенствование программы, деление нацело и остаток от деления
Добрый вечер, учусь программировать на С++. Придумал одну задачку и решил написать на с++...

7
18844 / 9843 / 2408
Регистрация: 30.01.2014
Сообщений: 17,285
18.04.2014, 21:26 2
танкист34, там не деление, а деление с остатком.
% - возвращает остаток от целочисленного деления.
0
148 / 139 / 18
Регистрация: 13.10.2012
Сообщений: 592
18.04.2014, 21:27 3
А что за код такой?
C++
1
2
unsigned int d = d & 0x00000000;
    unsigned int e_simple = e_simple & 0x00000000;
0
-23 / 0 / 2
Регистрация: 15.03.2013
Сообщений: 328
19.04.2014, 05:10  [ТС] 4
Цитата Сообщение от MastAKK Посмотреть сообщение
unsigned int d = d & 0x00000000; unsigned int e_simple = e_simple & 0x00000000;
это для уверенности, а то бывает так что, если ноль присваиваешь, то в переменной оказывается вовсе не ноль.

Добавлено через 1 минуту
Цитата Сообщение от DrOffset Посмотреть сообщение
танкист34, там не деление, а деление с остатком.
% - возвращает остаток от целочисленного деления.
дак это понятно, деление обозначается другим оператором. Меня интересует, почему именно при таком значении цикл завершается
0
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
19.04.2014, 07:46 5
Цитата Сообщение от танкист34 Посмотреть сообщение
это для уверенности, а то бывает так что, если ноль присваиваешь, то в переменной оказывается вовсе не ноль.
Это при каком расположении звезд такая магия происходит?
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
19.04.2014, 09:20 6
Лучший ответ Сообщение было отмечено танкист34 как решение

Решение

Цитата Сообщение от танкист34 Посмотреть сообщение
а должно выходить при единице.
83*5387=447121
14904*30=447120
447121-447120=1 - Вот она единица
Что не так?
1
-23 / 0 / 2
Регистрация: 15.03.2013
Сообщений: 328
19.04.2014, 10:25  [ТС] 7
Цитата Сообщение от 0x10 Посмотреть сообщение
Это при каком расположении звезд такая магия происходит?
на ассемблере тоже наподобие делают, только там XOR применяют вместо
Assembler
1
mov al, 0
Даже в разделе FAQ об этом написано и ещё сталкивался с такими вещами, когда с битами работал на С++.
Конечно, я наверно ошибаюсь что это обязательно, но порой когда ставишь так, то всё запускается. Тем более это не запрещено,обыкновенное побитовое умножение.
0
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
19.04.2014, 10:49 8
Цитата Сообщение от танкист34 Посмотреть сообщение
на ассемблере тоже наподобие делают, только там XOR применяют вместо
Не, минуту... На асме xor для обнуления используется в целях оптимизации, а не потому что другие способы не работают.
В общем, в приведенном случае это необоснованное усложнеие кода. Мб и можно наступить на грабли в сочетании с ассемблерными вставками -- не знаю, сходу не рискну сказазать.
0
19.04.2014, 10:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.04.2014, 10:49
Помогаю со студенческими работами здесь

Используя операции деления нацело и взятия остатка от деления, определить, имеется ли в записи числа цифра k
Полное условие: Дано натуральное число n. Используя операции деления нацело и взятия остатка от...

С помощью операций деления нацело и взятия остатка от деления определить, имеется ли в записи числа N цифра 2
//Дано целое число N(> 0).С помощью операций деления нацело и взятия остатка от деления определить,...

Дано целое число N(>0).используя операции деления нацело и взятия остатка от деления, найти количество и сумму его цифр
Дано целое число N(>0).используя операции деления нацело и взятия остатка от деления, найти ...

Используя одну операцию деления нацело и одну операция взятия остатка от деления найти цифру. соответствующую разряду ты
Дано целое число, большое 999. Используя одну операцию деления нацело и одну операция взятия...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru