Форум программистов, компьютерный форум CyberForum.ru

цикл и число по модулю - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
solomid
1 / 1 / 0
Регистрация: 22.09.2011
Сообщений: 86
10.11.2011, 17:31     цикл и число по модулю #1
проблема в следующем: есть отрицательное число, допустим -124, -124 mod 22 = 8, но если использовать стандартное взятие по модулю
C++
1
int i = -124%22;
то получаем -10. это как-то странно считает он, надо же как -124 + 22 + 22...и до тех пор пока не получится положительное число.
дак вот как это сделать? я подумал что через цикл, типо прибавляет к -124 до тех пор пока не получится положительное, первое положительное и есть ответ. помогите этот цикл реализовать, или как-то по другому может возможно сделать?

Добавлено через 57 минут
все сделал, можно закрывать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2011, 17:31     цикл и число по модулю
Посмотрите здесь:

Вычислить максимальное по модулю число из последовательности действительных чисел, без использования массива C++
C++ как в С написать число по модулю
Дано натуральное число n и действительное число а, найти, используя цикл C++
Произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами C++
Дан код, надо чтобы выводил не просто число, а по модулю C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.11.2011, 17:39     цикл и число по модулю #2
Вы правы, в математике остатки отрицательными не бывают, на этом и построена, в частности, теория чисел исходя из единственности разложения одного числа по модулю другого.
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
10.11.2011, 17:44     цикл и число по модулю #3
а не проще было взять первое число по модулю и после этого посчитать остаток, нежели мучаться и что-то писать?)
solomid
1 / 1 / 0
Регистрация: 22.09.2011
Сообщений: 86
10.11.2011, 18:22  [ТС]     цикл и число по модулю #4
Цитата Сообщение от Paporotnik Посмотреть сообщение
а не проще было взять первое число по модулю и после этого посчитать остаток, нежели мучаться и что-то писать?)
не,так не получится(или у меня просто не получилось)
да я цикл уже организовал,работает безотказно вроде)
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.11.2011, 18:29     цикл и число по модулю #5
Цитата Сообщение от solomid Посмотреть сообщение
не,так не получится
abs(-124)%22
solomid
1 / 1 / 0
Регистрация: 22.09.2011
Сообщений: 86
10.11.2011, 19:28  [ТС]     цикл и число по модулю #6
я ущерб...знаю эту функцию с 1 класса...забыл о ней просто
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
10.11.2011, 19:40     цикл и число по модулю #7
Цитата Сообщение от Thinker Посмотреть сообщение
abs(-124)%22
и получим 14, а ТС'y надо 8
Цитата Сообщение от solomid Посмотреть сообщение
-124 mod 22 = 8
solomid
1 / 1 / 0
Регистрация: 22.09.2011
Сообщений: 86
10.11.2011, 19:54  [ТС]     цикл и число по модулю #8
Цитата Сообщение от Net_Wanderer Посмотреть сообщение
abs(-124)%22
и получим 14, а ТС'y надо 8
Сообщение от solomid
-124 mod 22 = 8
у меня работает через abs
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2011, 20:07     цикл и число по модулю
Еще ссылки по теме:

вычислить произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами C++
C++ Найти произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами
Найти произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами C++

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

Или воспользуйтесь поиском по форуму:
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.11.2011, 20:07     цикл и число по модулю #9
Цитата Сообщение от Net_Wanderer Посмотреть сообщение
и получим 14, а ТС'y надо 8
Вы правы, через abs не получить значение остатка в математическом смысле. Вот:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
long Mod(long a, long mod)
{
    if (a < 0)
        for(; a < 0; a += mod)
            ;
    else
        for(; a > mod; a -= mod)
            ;
    return a;
}
 
int main()
{
    printf("%ld\n", Mod(-124, 22));
    printf("%ld\n", Mod(124, 22));
    return 0;
}
переменная mod (модуль разложения) считается положительной (как в теории чисел)
Yandex
Объявления
10.11.2011, 20:07     цикл и число по модулю
Ответ Создать тему
Опции темы

Текущее время: 13:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru