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

Алгоритм длинного деления

26.01.2015, 00:13. Показов 1878. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот переделал под себе код деления длинного числа на короткое

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#define all(c) c.begin(), c.end()
#define print(cont, pr) copy(all(cont), ostream_iterator<typeof(cont[0])>(cout, pr))
 
 
int osn=10;
struct BigInt
{
    vector<int> cont;
    BigInt(string str) {input(str);}
    BigInt() {}
    
    void input(string str) {
        reverse(all(str));
        for(int i=0; i<str.length(); i++)
            cont.push_back(str[i]-'0');
    }
    
    void output() {
        copy(cont.rbegin(), cont.rend(), ostream_iterator<typeof(cont[0])>(cout, ""));
    }
    
    void operator = (string str) {
        input(str);
    }
    
    void operator = (const BigInt &b) {
        cont.clear();
        cont.resize(b.cont.size());
        copy(all(b.cont), cont.begin());
    }
 
};
 
 
BigInt operator / (const BigInt &a, const int b) {
    BigInt res;
    for (int i=(int)a.cont.size()-1, c=0; i>=0; --i) {
        res.cont.push_back(a.cont[i] + c * osn);
        c = (int)(res.cont[i] % b);
        res.cont[i]=(int)(res.cont[i] / b);
    }
    reverse(all(res.cont));
    return res;
}
 
int main(int argc, char* argv[])
{
    BigInt a("125");
    BigInt c;
    c=a/5;
    c.output();
}
Написал все простые функции ( сложения вычитание, умножение, разные виды сравнения, ну и данное деление)
Все понял, а понять деление не могу.
Объясните пожалуйста на пальцах как работает этот алгоритм. Я уже всю тетрадку столбиками деления изрисовал
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2015, 00:13
Ответы с готовыми решениями:

Найти остаток от деления длинного числа N на K
Напишите программу, вычисляющую остаток от деления заданного «длинного» числа на заданную цифру. ...

Написать программу которая находит целую часть от деления длинного числа на длинное
Оба числа находятся в массивах. И ответ тоже. Деление столбиком.

Как можно модифицировать алгоритм Дейкстры под поиск самого длинного пути?
#include &lt;iostream&gt; #include &lt;locale.h&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; using...

Частное от деления длинного числа на короткое
Напишите программу, вычисляющую частное от деления двух целых неотрицательных чисел. Входные...

2
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
26.01.2015, 00:32 2
этот код нерабочий. строка 39 кривая. на первой итерации размер res.cont равен еденице. а обращение по последнему элементу контейнера а.
вот я тут недавно альтернативу постил. может пригодится. только не спрашивайте ничего. я ничего не
помню, а глядя на код разбираться не очень хочется

https://www.cyberforum.ru/post7138851.html
0
1 / 1 / 0
Регистрация: 09.07.2014
Сообщений: 167
26.01.2015, 07:32  [ТС] 3
меня тоже этот момент смутил, но я так и не понял правильно это или нет

Добавлено через 1 минуту
DU2, После исправления строки выдал неправильный результат (
0
26.01.2015, 07:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.01.2015, 07:32
Помогаю со студенческими работами здесь

Найти остаток от деления длинного числа на 7
Подскажите, как найти остаток от деления длинного числа (более 20 цифр) на 7?

Написать программу которая находит целую часть от деления длинного числа на длинное
как вообще написать программу которая делит

Как получить целочисленное частное длинного числа на короткое и остаток от такого деления?
Как получить целочисленное частное длинного числа на короткое и остаток от такого деления? Длинное...

Алгоритм деление длинного числа на недлинное.
Описан такой где-нибудь? Мой не проходит проверку по времени.

Алгоритм нахождения самого длинного слова в текстовом массиве
Подскажите пожалуйста алгоритм нахождения самого длинного слова в текстовом массиве. Может есть...

Не понимаю такой алгоритм (поиск самого длинного слова в файле)
f = &quot;sex rock dragndrop a get pock laaaaaaaaaaaa gas&quot; s = max(map(lambda x: (len(x), x), f.split(&quot;...


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

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