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

Сложение столбиков двух массивов чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Книги http://www.cyberforum.ru/cpp-beginners/thread814339.html
Здравствуйте. Подскажите пожалуйста хорошие книги по работе с интернет. Хочу немного побаловаться, до этого дела вообще не имел с этим => лучше попроще уровень чтобы понять что к чему. Спасибо! ...
C++ Форматирование строк. cout Нужно задать формат строки, чтобы выводились первые три символа. я делал так: #include <iostream.h> #include <iomanip.h> #define S "Hello, world!" main() { cout<<S.length(3); getch(); return... http://www.cyberforum.ru/cpp-beginners/thread814324.html
C++ Сложение больших чисел (длинная арифметика)
Есть две строки string с числами, не получается сделать их суммирование с помощь, не могу понять как сделать, помогите, пожалуйста. Вот, что я написал: #include <stdlib.h> #include <iostream>...
C++ Запись в файл
Сформировать файл "ЕXP.txt", содержащий сведения об экспорте товаров такого образца: наименование, страна, объем поставок и стоимость поставок. Переписать в файл "MaxExp.txt" названия стран, экспорт...
C++ Через какое время корабль прибудет в порт назначения? http://www.cyberforum.ru/cpp-beginners/thread814287.html
Подскажите пожалуйста Корабль должен преодолеть 3000 км. В первый день он прошел 200 км. Каждый следующий день он будет проходить на 5% больше, чем в предыдущий. Через какое время он прибудет в порт...
C++ Удаление указателя на объект класса Что-то ни как не могу разобраться, где у меня ошибка?! Ниже приведен фрагмент кода: //... shapes *ptr=0; //ptr - указатель базового типа, на объект производного класса (к примеру, ромба) //...... подробнее

Показать сообщение отдельно
PlayaRC
5 / 5 / 0
Регистрация: 10.03.2012
Сообщений: 121
21.03.2013, 13:50  [ТС]
Цитата Сообщение от UnsKneD Посмотреть сообщение
не особо понимаю, как сказанное в этой теме реализовать на моем примере, не могли бы вы показать?

Добавлено через 25 минут
Все, разобрался.

Может кому понадобится код всей программы.

"Сложение больших чисел столбиком"

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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include <stdlib.h>
#include <iostream>
using namespace std;
 
class bigint
{
    int a[256], b[256], c[256];
    int s, len_a, len_b, max_len;
 
public:
    bigint(int [], int [], int, int);
    void show();
    void sum();
};
 
bigint::bigint(int a[], int b[], int len_a, int len_b)
{
    s=0;
 
    bigint::len_a = len_a;
    bigint::len_b = len_b;
 
    int k;
 
    for(int i=0; i<len_a; i++)
    {
        bigint::a[i]=a[i];
    }
    for(int i=0; i<len_a/2; i++)
    {
        k=bigint::a[i];
        bigint::a[i]=bigint::a[len_a-i-1];
        bigint::a[len_a-i-1]=k;
    }
 
    for(int i=0; i<len_b; i++)
    {
        bigint::b[i]=b[i];
    }
    for(int i=0; i<len_b/2; i++)
    {
        k=bigint::b[i];
        bigint::b[i]=bigint::b[len_b-i-1];
        bigint::b[len_b-i-1]=k;
    }
 
    if(len_a<len_b)
    {
        max_len = len_b;
        for(int i=0; i<len_b-len_a; i++)
        {
            bigint::a[len_a+i]=0;
        }
    }
    if(len_b<len_a)
    {
        max_len = len_a;
        for(int i=0; i<len_a-len_b; i++)
        {
            bigint::b[len_b+i]=0;
        }
    }
}
 
void bigint::show()
{
    cout<<"Первое число = ";
    for(int i=0; i<max_len; i++)
        cout<<a[i];
    cout<<", размером в "<<len_a<<" символов"<<endl;
 
    cout<<"Второе число = ";
    for(int i=0; i<max_len; i++)
        cout<<b[i];
    cout<<", размером в "<<len_b<<" символов"<<endl;
    cout<<"Сумма = ";
    for(int i=max_len-1; i>=0; i--)
        cout<<c[i];
}
 
void bigint::sum()
{
    int i, k;
    for(k=0; k<max_len; k++)
        c[k]=0;
    for(i=max_len-1; i>=0; i--)
    {
        s=0;
        if(a[i]+b[i]>9)
        {
            s=1;
            c[i+1]+=s;
        }
        c[i]=(a[i]+b[i])%10;
    }
}
 
int main()
{
    setlocale(0, "rus");
 
    int a[13]={2,8,3,9,4,7,5,8,6,7,3,8,2};
    int b[8]={4,7,3,8,5,7,3,8};
 
    bigint str(a, b, 13, 8);
    str.sum();
    str.show();
 
    return 0;
}
Добавлено через 16 минут
Теперь не могу сделать вычитание, прошу рассказать хотя бы алгоритм, заранее спасибо!
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru