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

Длинная арифметика. Умножение двух длинных чисел. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Int to string http://www.cyberforum.ru/cpp-beginners/thread285630.html
Какой способ перевода Int в String самый лёгкий ? В делфи привык писать Inttostr (i) , а на с++ такое есть ?
Visual C++ MFC. Ошибка LNK2019 , LNK1120 Работаю в среде MFC: bool CheckKey() { for (int i=1; i<= Key.GetLength(); i++) for (int j=1; j <= Key.GetLength(); j++) if ((Key == Key) && (i != j)) return false; return true; http://www.cyberforum.ru/cpp-beginners/thread285627.html
C++ Класс комплексных чисел(подправить)
Помогите дописать в оераторе "умножение" умножение вещественного числа на комплексное,double на комплексное. Очень надо. Заранее спасибо #include <iostream> #include <conio.h> #include <math.h> #include <complex> using namespace std; const double Pi = 3.14159265358979323846; class Complex
C++ ООП, разобрать задание.
Составить описание класса для представления комплексных чисел с возможностью задания вещественной и мнимой частей как числами типов double, так и целыми числами. Обеспечить выполнение операций сложения, вычитания и умножения комплексных чисел Нужно посмотреть в коде ошибки, препод придирается к ней, но не поясняет в чем проблема Main.cpp #include <iostream> #include "compl.h" void...
C++ справочная система компонентов компьютерной техники - С++ http://www.cyberforum.ru/cpp-beginners/thread285537.html
Помогите пожалуйста!!!Тема курсовой-справочная система компонентов компьютерной техники Нужно написать программу на языке С++ Поняла только что необходимо использовать тему классы и можно будет воспользоваться массивом
C++ Лабораторная на C++. Строки. Очень прошу помочь!) Нужно написать программу на языке C++ с использованием стандартных функций для обработки строк.(не CString) Задан текст, состоящий из слов, записанных через запятые, и заканчивающийся точкой. Длина текста не больше 200 символов, могут быть использованы любые символы. Словом считать последовательность символов, не содержащую пробел. Выдать слова текста и их длины.... подробнее

Показать сообщение отдельно
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
30.04.2011, 23:21     Длинная арифметика. Умножение двух длинных чисел.
Взял алгоритм по той ссылке, которую я тебе дал, убрал только эту ll1.
Могли бы и вы так попробовать.
+ Я тут взял основание 10, для простоты примера.

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
53
54
#include <iostream>
#include <vector>
#include <iomanip>
#include <string>
#include <cstdlib>
#define BASE 10
#define LEN 1
 
typedef std::vector <int> type;
 
void readlong (type &);
void mult (type &, type &, type &);
 
int main()
{
    type a, b, rez;
 
    std::cout << "First long number: ";
    readlong (a);
    std::cout << "Second long number: ";
    readlong (b);
 
    mult (a, b, rez);
 
    std::cout << rez.back ();
    for (int i = rez.size () - 2; i >= 0; i--)
        std::cout << rez[i];
 
    return 0;
}
 
void readlong (type &vec)
{
    std::string str;
    std::cin >> str;
 
    for (int i = str.size (); i > 0; i--)
        vec.push_back (atoi (str.substr (i - LEN, LEN).c_str()));
}
 
void mult (type &a, type &b, type &rez)
{
    rez.resize (a.size() + b.size());
    for (int i = 0; i < a.size(); ++i)
        for (int j = 0, carry = 0; j < b.size() || carry; ++j)
        {
            long long cur = rez[i+j] + a[i] * (j < b.size() ? b[j] : 0) + carry;
            rez[i+j] = cur % BASE;
            carry = cur / BASE;
        }
 
    while (rez.size() > 1 && rez.back() == 0)
        rez.pop_back();
}
 
Текущее время: 21:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru