Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 11

Сложить два пятидесятизначных десятичных числа.

08.01.2011, 19:44. Показов 2290. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пожалуйсто помогите решить задачу: Сложить два пятидесятизначных десятичных числа.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.01.2011, 19:44
Ответы с готовыми решениями:

Сложить два пятидесятизначных десятичных числа
Сложить два пятидесятизначных десятичных числа.Плиз помогите решеть,только в С,не в С++

Сложить два длинных числа
Есть класс Decimal который наследует виртуальную функцию сложения массивов от базового класса. В классе есть массив типа unsigned char....

Как сложить два числа
как сложить два числа в с++

7
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
08.01.2011, 19:47
Храните числа в массивах. Используйте школьный алгоритм сложения столбиком. Вообще, погуглите про длинную арифметику.
0
 Аватар для Алексaндр
131 / 108 / 12
Регистрация: 04.12.2010
Сообщений: 313
08.01.2011, 20:00
Можно эти 2 числа вписать в массивы char и потом действительно методом "столбика" добавлять элементы.
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
08.01.2011, 20:47
delete

Добавлено через 28 минут
Вроде работает
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
#include <iostream>
#include <algorithm>
#include <vector>
#include <ctime>
#include <cstdlib>
#include <string>
#include <sstream>
 
int gen()
{
    return rand() % 9 + 1;
}
 
void show(int a)
{
    std::cout << a;
}
 
int get_last_num(int n)
{
    int t = n % 10;
    return t;
}
 
int get_cnt_digit(int n)
{
    if(!n)
        return 1;
 
    std::ostringstream ost;
    ost << n;
    return ost.str().length();
}
 
std::vector<int> get_sum_nums(
                              std::vector<int> &v1,
                              std::vector<int> &v2, const size_t n)
{
    std::vector<int> v3;
 
    int t = 0;
    for(int i = n - 1; i >= 0; --i)
    {
        if(get_cnt_digit(v1[i] + v2[i]) == 1)
            v3.push_back(v1[i] + v2[i] + t);
 
        else if(get_cnt_digit(v1[i] + v2[i]) == 2)
        {
            v3.push_back(get_last_num(v1[i] + v2[i]));
            t = (v1[i] + v2[i]) / 10;
        }
    }
 
    return v3;
}
 
int main()
{
    const size_t n = 50;
    std::vector<int> num_1(n), num_2(n), res;
    srand(static_cast<unsigned>(time(0)));
 
    std::generate(num_1.begin(), num_1.end(), gen);
    std::generate(num_2.begin(), num_2.end(), gen);
 
    std::for_each(num_1.begin(), num_1.end(), show);
    std::cout << '\n';
    std::for_each(num_2.begin(), num_2.end(), show);
 
    res = get_sum_nums(num_1, num_2, n);
    std::reverse(res.begin(), res.end());
    std::cout << '\n';
    std::for_each(res.begin(), res.end(), show);
 
    return 0;
}
0
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 11
09.01.2011, 00:21  [ТС]
эм..проблемка одна...моя вина..я не уточнил...надо написать её на С а не на С++...сорри
0
программист С++
 Аватар для sandye51
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
09.01.2011, 02:00
asics, не странно ли что при сложении 2х чисел, равных по длине, результат содержит разрядов на 3-5 больше? О_о
Миниатюры
Сложить два пятидесятизначных десятичных числа.  
0
программист С++
 Аватар для sandye51
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
09.01.2011, 02:34
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
#include <iostream>
#include <algorithm>
#include <vector>
#include <ctime>
#include <cstdlib>
#include <string>
#include <sstream>
#include <conio.h>
#include <iterator>
 
using namespace std;
 
int gen()
{
    return rand() % 9 + 1;
}
 
void show(int a)
{
    std::cout << a;
}
 
int get_last_num(int n)
{
    int t = n % 10;
    return t;
}
 
int get_cnt_digit(int n)
{
    if(!n)
        return 1;
 
    std::ostringstream ost;
    ost << n;
    return ost.str().length();
}
 
std::vector<int> get_sum_nums(std::vector<int> &v1, std::vector<int> &v2, const size_t n)
{
    std::vector<int> v3;
 
    int t = 0;
    for(int i = n - 1; i >= 0; --i)
    {
        if(get_cnt_digit(v1[i] + v2[i] + t) == 2)
        {
            v3.push_back((v1[i] + v2[i] + t) % 10);
            t = (v1[i] + v2[i] + t) / 10;
        }
        else
        {
            v3.push_back(v1[i] + v2[i] + t);
            t = 0;
        }
    }
    v3.push_back(t);
    return v3;
}
 
int main()
{
    const size_t n = 50;
    std::vector<int> num_1(n), num_2(n), res;
    srand(static_cast<unsigned>(time(0)));
 
    std::generate(num_1.begin(), num_1.end(), gen);
    std::generate(num_2.begin(), num_2.end(), gen);
 
    res = get_sum_nums(num_1, num_2, n);
    if(res.size() == n + 1)
        cout << " ";
    copy(num_1.begin(), num_1.end(), std::ostream_iterator<int>(std::cout, ""));
    cout << endl;
    if(res.size() == n + 1)
        cout << " ";
    copy(num_2.begin(), num_2.end(), std::ostream_iterator<int>(std::cout, ""));
    cout << endl;
    std::copy(res.rbegin(), res.rend(), std::ostream_iterator<int>(std::cout, ""));
    _getch();
    return 0;
}

Не по теме:

немного поизменял ваш код, теперь работает все ОК.
насчет t забыли

0
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 11
09.01.2011, 18:26  [ТС]
ребят...завтра надо сдать зачёт...эту задачу надо в С а не в С++ написать...плиз решите её..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.01.2011, 18:26
Помогаю со студенческими работами здесь

Сложить два больших числа
Сообственно сабж.Идея понятна.Тк такого типа который может вместить все разряды не существует,я сделала такой алгоритм.Каждая цифра числа...

Сложить два числа в одно
Здравствуйте, есть два числа в каждом может бить цифра от 1 до 20, пример 5 17 Возможно ли эти числа записать одним который будет от -20...

Сложить столбиком два числа char
как сложить столбиком 2 числа записанных в char? Объясните кодом

Сложить два двоичных числа по модулю 2
Здравствуйте. Нужен код сложения двух двоичных чисел по модулю 2. Нужно сложить два числа так, чтобы сложение по модулю два...

Сложить два числа, записанные в файле
нужно создать программу которая будет находить сумму чисел, а числа в файле, разделенные пробелами или переносами строки спасибо


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru