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

Сложение больших чисел (длинная арифметика) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Запись в файл http://www.cyberforum.ru/cpp-beginners/thread814300.html
Сформировать файл "ЕXP.txt", содержащий сведения об экспорте товаров такого образца: наименование, страна, объем поставок и стоимость поставок. Переписать в файл "MaxExp.txt" названия стран, экспорт в которых превышает 10 наименований, и общую стоимость таких поставок.
C++ Через какое время корабль прибудет в порт назначения? Подскажите пожалуйста Корабль должен преодолеть 3000 км. В первый день он прошел 200 км. Каждый следующий день он будет проходить на 5% больше, чем в предыдущий. Через какое время он прибудет в порт назначения? http://www.cyberforum.ru/cpp-beginners/thread814287.html
C++ Удаление указателя на объект класса
Что-то ни как не могу разобраться, где у меня ошибка?! Ниже приведен фрагмент кода: //... shapes *ptr=0; //ptr - указатель базового типа, на объект производного класса (к примеру, ромба) //... ptr=new rhomb; //ромб - объект производного класса rhomb от базового класса shapes //... delete ptr; //удаление объекта (ромба) //...
Сортировка масива методом выбора C++
Подскажите пожалуйста, почему компилятор жалуется на мою 34 строку (где я переношу функцию в main). #include <iostream> using namespace std; template< class T > void selectSort(T* arr, int size) {
C++ Что такое многоразрядное число? (Создать класс ПАРА целых чисел) http://www.cyberforum.ru/cpp-beginners/thread814266.html
Объясните пожалуйста что такое многоразрядное число, и его старшая и младшая часть, если можно наведите пример.
C++ Представить n в виде произведения простых чисел Нужно найти каждое значение p^a, если дано n. Помогите, пожалуйста. подробнее

Показать сообщение отдельно
PlayaRC
4 / 4 / 0
Регистрация: 10.03.2012
Сообщений: 121
21.03.2013, 01:51     Сложение больших чисел (длинная арифметика)
Есть две строки string с числами, не получается сделать их суммирование с помощь, не могу понять как сделать, помогите, пожалуйста.

Вот, что я написал:
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <stdlib.h>
#include <iostream>
#include <string>
using namespace std;
 
class bigint
{
    string a, b, c;
    int s, len_a, len_b, max_len;
public:
    bigint(string, string);
    void show();
    void sum();
    void minus();
};
 
bigint::bigint(string a, string b)
{
    bigint::a=a;
    char k;
    for (int i=0;i<a.length()/2;i++)
    {
      k=bigint::a[i];
      bigint::a[i]=bigint::a[bigint::a.length()-i-1];
      bigint::a[a.length()-i-1]=k;
    }
 
    bigint::b=b;
    for (int i=0;i<b.length()/2;i++)
    {
      k=bigint::b[i];
      bigint::b[i]=bigint::b[bigint::b.length()-i-1];
      bigint::b[b.length()-i-1]=k;
    }
 
    len_a = a.length();
    len_b = b.length();
    s=0;
 
    if(len_a<len_b)
    {
        max_len = len_b;
        for(int i=0; i<len_b-len_a; i++)
        {
            bigint::a+="0";
        }
    }
    if(len_b<len_a)
    {
        max_len = len_a;
        for(int i=0; i<len_a-len_b; i++)
        {
            bigint::b+="0";
        }
    }
}
 
void bigint::show()
{
    cout<<"Первое число = "<<a<<", размером в "<<len_a<<" символов"<<endl;
    cout<<"Второе число = "<<b<<", размером в "<<len_b<<" символов"<<endl;
    //cout<<"Сумма = "<<c<<endl;
}
 
void bigint::sum()
{
    //Вот тут вообще не пойму что делать
    int g;
    for(int i=0; i<max_len; i++)
    {
        if((a[i]-48)+(b[i]-48)>9)
            s=1;
        c[i+1]=a[i+1]+b[i+1]+s;
        cout<<c[i];
    }
}
 
int main()
{
    setlocale(0, "rus");
 
    string a="47385738";
    string b="2839475867382";
 
    bigint str(a, b);
    str.sum();
    str.show();
 
    return 0;
}
Знаю, что нужно сделать все с помощью сложения в столбик, но не пойму как перенести 1цу в следующий разряд и еще многого другого!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru