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

Длинная арифметика: найти разность между неотрицательными числами А и В - C++

Восстановить пароль Регистрация
 
Shaykemelov
9 / 9 / 2
Регистрация: 14.11.2011
Сообщений: 27
23.12.2011, 18:17     Длинная арифметика: найти разность между неотрицательными числами А и В #1
Не могу решить задачу на С++ А-Б длинная арифметика
Требуется найти разность между неотрицательными числами А и В.
ВОТ КОД
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
#include<iostream>
#include<string>
using namespace std;
int main()
{
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    string st;
    int i,a[100000],b[100000],c[100000],s1=0,s2=0,x=0,y=0,j;
    cin>>st;
    for(i=st.length()-1; i>=0; i--){a[0]++; a[a[0]]=st[i]-48;y++; s1+=st[i]-48;}
    cin>>st;
    for(i=st.length()-1; i>=0; i--){b[0]++; b[b[0]]=st[i]-48;x++; s2+=st[i]-48;}
    c[0]=max(a[0],b[0]);
    if((y>=x)&&(s1>=s2))
    {
    for(i=1; i<=c[0]; i++)
    {
        if(a[i]<b[i]) {a[i]+=10;a[i+1]=a[i+1]-1;}
        c[i]=c[i]+a[i]-b[i];
    }
    if(c[0]>1)
    {
    if (c[c[0]]==0) c[0]--;
    }
    for(i=c[0]; i>=1; i--)
    {
        cout<<c[i];
    }
    }
    else
    {
        for(i=1; i<=c[0]; i++)
    {
        if(b[i]<a[i]) {b[i]+=10;b[i+1]=b[i+1]-1;}
        c[i]=c[i]+b[i]-a[i];
    }
    if(c[0]>1)
    {
    if (c[c[0]]==0) c[0]--;
    }
    cout<<"-";
    for(i=c[0]; i>=1; i--)
    {
        cout<<c[i];
    }        
    }
 
    return 0;
}
помогите мне с решением этой задачи
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2011, 18:17     Длинная арифметика: найти разность между неотрицательными числами А и В
Посмотрите здесь:

Длинная арифметика C++
Вывести минимальную по абсолютной величине разность между соседними числами. C++
C++ Длинная арифметика. Класс работы с длинными числами.
Как взять разность по модулю между двумя числами int? C++
Длинная арифметика (найти остаток при делении на 7) C++
длинная арифметика C++
C++ Длинная арифметика. Найти количество делителей n-значного натурального числа (n > 20)
C++ Длинная арифметика

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 14:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru