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

Разность произвольных чисел - C++

Восстановить пароль Регистрация
 
Axsce
Сообщений: n/a
17.11.2011, 08:43     Разность произвольных чисел #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
#include <iostream>
#include <string>
using namespace std;
int a[1000] , b[1000], c[1000];
void vvod(int a[])
{ int i, len; string s;
  cin>>s; len=s.length();
  a[0]=len;
  for(i=len-1; i>=0;i--) a[len-i]=s.at(i)-48;
}
 
void vivod(int a[])
{ int i;
  for(i=a[0]; i>=1;i--) cout<<a[i];
  cout<<endl;
}
 
void summa(int a[],int b[], int c[])
{  int i, len,r=0;
   if(a[0]>b[0]) len=a[0]; else len=b[0];
   for(i=1; i<=len; i++)
   {r=a[i]-b[i]+r; c[i]=r%10; r=r/10;}
   if (r==1) {len++; c[len]=r;}
   c[0]=len;
}
 
int main()
{  vvod(a); vvod(b);
   summa(a,b,c);
   vivod(c);
   return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2011, 08:43     Разность произвольных чисел
Посмотрите здесь:

(CИ)26. Определить сколько раз последовательность из N произвольных чисел меняет знак C++
C++ Имеется массив А из N произвольных чисел.
C++ Записать в файл последовательного доступа n произвольных чисел.
В последовательности из N произвольных чисел подсчитать количество нулей C++
C++ Классы (программа сложения двух произвольных чисел)
C++ Составить программу вычисления суммы любого количества произвольных чисел
C++ В последовательности из n произвольных чисел подсчитать количество нулей
Найти разность 2-х чисел (max и min) из последовательности чисел, введенное с клавиатуры (n = 5) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Axsce
Сообщений: n/a
01.12.2011, 08:18     Разность произвольных чисел #2
кому интересно, надо:


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>
#include<stdlib.h>
#include<stdio.h>
using namespace std;
int a[1000] , b[1000], c[1000], d;
void vvod(int a[])
{ int i, len; string s;
  cin>>s; len=s.length();
  a[0]=len;
  for(i=len-1; i>=0;i--) a[len-i]=s.at(i)-48;
}
 
void vivod(int a[])
{ int i;
  for(i=a[0]; i>=1;i--) cout<<a[i];
  cout<<endl;
}
 
void vich(int a[],int b[], int c[])
{ int i, len, r=0, ab=0, ba=0;
  memset(c,sizeof(c),0);
  if (a[0]>b[0]) {len=a[0]; ab=1;} else 
  if (a[0]<b[0]) {len=b[0]; ba=1;} 
 
  else 
  { i=a[0]; len=a[0];
    while (a[i]==b[i] && i>=0) i--;
 
    if (a[i]>b[i]) ab=1; else ba=1;    
 
  }  
    if (ba==1) 
    { 
        for (i=1;i<=len;i++) {r=b[i]; b[i]=a[i]; a[i]=r;}
    }
  
    for(i=1; i<=len; i++)
    if (b[i]<=a[i]) c[i]=a[i]-b[i]; else {c[i]=a[i]+10-b[i]; a[i+1]=a[i+1]-1;}
    c[0]=len;
 
}
int main()
{
      memset(a,sizeof(a),0);  memset(b,sizeof(b),0);
   vvod(a); vvod(b);
   vich(a,b,c);
   vivod(c);
   return 0;
}
Yandex
Объявления
01.12.2011, 08:18     Разность произвольных чисел
Ответ Создать тему
Опции темы

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