Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
танкист34
-62 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 328
#1

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

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

Имеется цикл 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)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2014, 21:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Цикл while, остаток от деления нацело (C++):

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

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

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

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

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

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

7
DrOffset
7387 / 4464 / 1013
Регистрация: 30.01.2014
Сообщений: 7,317
18.04.2014, 21:26 #2
танкист34, там не деление, а деление с остатком.
% - возвращает остаток от целочисленного деления.
0
MastAKK
145 / 136 / 12
Регистрация: 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
танкист34
-62 / 0 / 0
Регистрация: 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
0x10
2509 / 1687 / 253
Регистрация: 24.11.2012
Сообщений: 4,232
19.04.2014, 07:46 #5
Цитата Сообщение от танкист34 Посмотреть сообщение
это для уверенности, а то бывает так что, если ноль присваиваешь, то в переменной оказывается вовсе не ноль.
Это при каком расположении звезд такая магия происходит?
0
zss
Модератор
Эксперт С++
6629 / 6191 / 2048
Регистрация: 18.12.2011
Сообщений: 16,146
Завершенные тесты: 1
19.04.2014, 09:20 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от танкист34 Посмотреть сообщение
а должно выходить при единице.
83*5387=447121
14904*30=447120
447121-447120=1 - Вот она единица
Что не так?
1
танкист34
-62 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 328
19.04.2014, 10:25  [ТС] #7
Цитата Сообщение от 0x10 Посмотреть сообщение
Это при каком расположении звезд такая магия происходит?
на ассемблере тоже наподобие делают, только там XOR применяют вместо
Assembler
1
mov al, 0
Даже в разделе FAQ об этом написано и ещё сталкивался с такими вещами, когда с битами работал на С++.
Конечно, я наверно ошибаюсь что это обязательно, но порой когда ставишь так, то всё запускается. Тем более это не запрещено,обыкновенное побитовое умножение.
0
0x10
2509 / 1687 / 253
Регистрация: 24.11.2012
Сообщений: 4,232
19.04.2014, 10:49 #8
Цитата Сообщение от танкист34 Посмотреть сообщение
на ассемблере тоже наподобие делают, только там XOR применяют вместо
Не, минуту... На асме xor для обнуления используется в целях оптимизации, а не потому что другие способы не работают.
В общем, в приведенном случае это необоснованное усложнеие кода. Мб и можно наступить на грабли в сочетании с ассемблерными вставками -- не знаю, сходу не рискну сказазать.
0
19.04.2014, 10:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2014, 10:49
Привет! Вот еще темы с ответами:

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

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

Для двух целых чисел найти остаток и частное от целочисленного деления, частное от вещественного деления - C++
Уважаемые форумчане помогите пожалуйста с двумя программами. Это вопрос жизни и отчисления, я очень плохо понимаю программирование. В...

Используя операцию деление нацело, вывести не остаток, а сам результат - C++
как, используя операцию деление нацело, вывести не остаток, а сам результал?


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.