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

Найти частное двух чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Распечатать первые n простых чисел http://www.cyberforum.ru/cpp-beginners/thread322033.html
Распечатать первые п простых чисел ( р - простое число, если р>= 2 и делится только на 1 и на себя) на C++ Именуйте темы осмысленно! Название темы должно максимально полно отражать её содержимое.
C++ Отсортируйте по возрастанию те элементы массива, которые входят во введенный отрезок Одномерный массив Преобразование массива Дан массив ,состоящий из n элементов. Преобразовать его,вставив после каждого положительного элемента максимальный элемент 5. Одномерный массив... http://www.cyberforum.ru/cpp-beginners/thread322021.html
Не работает вход в цикл в игре двадцать одно C++
Программа для игры в 21. Возникла проблема в механизме досдачи карт( насколько я понял, не входит в цикл, котоый выводит новые карты и считает новый счет пользователя). Вот текст программы : ...
Алгоритм перебора C++
Всем доброго времени суток! Уважаемые форумчане подскажите алгоритм полного перебора, можно без кода, лишь ход действий. Конкретнее. В кармане некоторое количество монет. Какие суммы денег возможны...
C++ проверьте пожалуйста! http://www.cyberforum.ru/cpp-beginners/thread322005.html
Доброе утро!Хочу показать вам не проверку свое творение.Не запускается. Вот текст ошибки: g++.exe "C:\Users\user\Desktop\Dev-Cpp\nature.cpp" -o "C:\Users\user\Desktop\Dev-Cpp\nature.exe" ...
C++ прекалк Доброго времени суток Знаю, что есть задачи, которые можно решить только с помощью этого прекалка. Но что это такое - найти не могу =( Просьба дать линки на какую-нибудь литературу по этой теме,... подробнее

Показать сообщение отдельно
grizlik78
Эксперт С++
1911 / 1443 / 112
Регистрация: 29.05.2011
Сообщений: 3,000
18.06.2011, 13:23
В общем, вот примерный код. Формально умножений и делений нет, если не считать за таковые сдвиги.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
 
unsigned div(unsigned a, unsigned b, unsigned& remain)
{
    unsigned const HI_BIT = ~((~0u) >> 1); // Корявенько. А можно красивее?
    int result = 0;
    unsigned n = (a < b) ? 0 : 1;
    while ( (b << 1) < a && !(b & HI_BIT))
    {
        b <<= 1;
        ++n;
    }
    while (n--)
    {
        result <<= 1;
        if (a >= b)
        {
            a -= b;
            result += 1;
        }
    }
    remain = a;
    return result;
}
 
int main()
{
    unsigned remain = 0;
    unsigned a = 123;
    unsigned b = 7;
    unsigned q = div(a, b, remain);
    std::cout << a << " = " << b << "*" << q << " + " << remain << std::endl;
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru