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

сложить 2 больших числа с одинаковым количеством элементов (изобразив их в виде массивов) - C++

Восстановить пароль Регистрация
 
Мида
0 / 0 / 0
Регистрация: 27.01.2012
Сообщений: 13
11.02.2012, 21:52     сложить 2 больших числа с одинаковым количеством элементов (изобразив их в виде массивов) #1
Нужно сложить два числа (по 20 элементов каждое) (беру пример по 5 элементов). Векторы и количество символов ещё не изучали(.. Форум смотрела, многое непонятно, подскажите где ошибка?
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
#include "stdafx.h"
#include <iostream>
#include <time.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    const int size=5;
    int A[size], B[size];
    int C [size+1];// увеличиваю массив суммы на 1
    // создаю первый массив
    srand(time(0));
    for (int i = 0; i<size; i++)
    {
 
        A[i]= rand()%9+1;
        cout <<A[i]<<"\t";
 
    }
    cout<<endl;
// создаю второй массив
    for (int i =0; i<5; i++)
    {
        B[i]=rand()%9+1;
        cout<<B[i]<<"\t";
    }
    cout<<endl;
int buf=0;// переменная для запоминания десятков при сложении
    for (int j=size+1; j>0;j--)
    {
        for(int i=size; i>0; i--)
        {   
            
            C[j]=A[i]+B[i]+buf;
 
            if (C[j]>=10)// если сумма больше или равна 10
            { 
                C[j]=C[j]%10;
                buf=C[j]/10;
                C[j-1]=A[i-1]+B[i-1]+buf;// пытаюсь перейти на предыдущий????(((((((((((((((
            }
        }
cout<<C[j]<<"\t";   
    }
        
    return 0;
}
второй вариант:
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
#include "stdafx.h"
#include <iostream>
#include <time.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    const int size=6;// увеличиваем размер массива на 1, чтобы "влез" 0 элемент получившейся матрицы
    int A[size], B[size];
    int C [size];
    //int buf=0;
    
    A[0]=0;
    
srand(time(0));
    for (int i = 1; i<size; i++)
    {
 
        A[i]= rand()%9+1;
        cout <<A[0]<<"\t"<<cout<<A[i]<<"\t";
 
    }
    cout<<endl;
    //srand(time());
    B[0]=0;
    for (int i =1; i<size; i++)
    {
        B[i]=rand()%9+1;
        cout<<B[0]<<"\t"<< cout<<B[i]<<"\t";
    }
    cout<<endl;
int buf=0;
    for (int j=size; j>0;j--)
    {
        for(int i=size; i>0; i--)
        {   
            
            C[j]=(A[i]+B[i]+buf);
 
            if (C[j]>=10)
            {   buf=C[j]/10;
                C[j]=C[j]%10;
                
                
            }
        
        }
    cout<<C[j]<<"\t";
    }
        
    return 0;
}
и тут началось с создаванием рандомных чисел....
ну и дальше((((((
Может подскажет кто?

Добавлено через 2 часа 31 минуту
)) сама себе и ответила))) может пригодится кому...
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
#include "stdafx.h"
 
#include <iostream>
#include <time.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
 const int size=6;// увеличиваем размер массива на 1, чтобы "влез" 0 элемент получившейся матрицы
 int A[size], B[size];
 int C [size]={0};
 A[0]=0;// присваиваем 0 первым элементам
 //строим первы
 srand(time(0));
 cout<<A[0]<<"\t";
 for (int i = 1; i<size; i++)
 {
  A[i]= rand()%9+1;
  cout<<A[i]<<"\t";
 }
 cout<<endl;
 B[0]=0;
 cout<<B[0]<<"\t";
 for (int i =1; i<size; i++)
 {
  B[i]=rand()%9+1;
  cout<<B[i]<<"\t";
 }
 cout<<endl;
 for (int j=size-1, i = size -1; j>=0 && i>0 ;j--, i--)
 {   
 
  C[j] += A[i]+B[i];
 
  if (C[j]>=10)
  {  
   C[j-1] = C[j]/10;
   C[j]=C[j]%10;
  }
 }
 for (int i = 0 ; i<size ; i++)
  cout<<C[i]<<"\t";
 return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2012, 21:52     сложить 2 больших числа с одинаковым количеством элементов (изобразив их в виде массивов)
Посмотрите здесь:

Из введенных целых чисел сформировать два списка типа стек с одинаковым количеством элементов. C++
Найти количество элементов массива, больших заданного числа C++
C++ Как правильно сложить два больших (64 бита) числа?
C++ Функция должна вычислять число положительных элементов массива и число элементов больших вычисленного числа
C++ Применение массивов случайных чисел с большим количеством элементов
Остаток от деления, числа в виде массивов C++
Найти сумму квадратов элементов, больших некоторого числа X C++
Вычислить сумму элементов массива больших заданного числа C++

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

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

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