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

Написать элегантнее класс для сложения больших чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция открывающая файл http://www.cyberforum.ru/cpp-beginners/thread1783891.html
есть функция open() для создания/пересоздания нового файла. Я не нашел функции, которая ищет уже существующий файл и открывает его. Подскажите, пожалуйста)
C++ Создание Windows Service Добрый день! Пытаюсь разобраться как писать вин сервисы, что это за зверь такой и зачем он вообще нужен) нашёл статью на Хабре https://habrahabr.ru/post/71533/ по аналогии как там написано пытался повторить что бы получить так же сервис который пишет в файл.. код ниже #include <QCoreApplication> #include <iostream> #include <Windows.h> #include <conio.h> #include <tchar.h> #include... http://www.cyberforum.ru/cpp-beginners/thread1783882.html
C++ Орел-решка, всегда одно и тоже значение
При компиляции каждый раз получаю ответ "Решка" #include <iostream> #include <cstdlib> using namespace std; int main() { setlocale(LC_CTYPE, "Russian"); int num = rand() % 2;
Сравнение двумерного масива C++
Здравствуйте, помогите плиз понять что и где я делаю не так. Что мне надо? Что бы сравнивалось по строчно первый столбец со всеми первыми столбцами и если они одинаковые сравнивался второй столбец этой же строчки со всеми вторыми столбцами и если они одинаковые сравнивался третий столбец этой же строки со всеми третими столбцами и если они одинаковые выводило 1, 2 , 3, 4 столбец этой строки на...
C++ Найти наименьший элемент и наименьший элемент по модулю http://www.cyberforum.ru/cpp-beginners/thread1783844.html
#include <iostream>; #include <ctime>; #include <cmath>; using namespace std; int main() { srand(time(NULL)); const int n=10; int myArray;
C++ Выделение памяти и вывод её содержимого на печать в консоль Здравствуйте, форумчане. Не подскажите, как в С++ выделить 1 кБайт памяти одним куском и вывести её содержание на экран консоли через cout ? подробнее

Показать сообщение отдельно
xTr1m
29 / 29 / 8
Регистрация: 06.03.2013
Сообщений: 151

Написать элегантнее класс для сложения больших чисел - C++

21.07.2016, 18:32. Просмотров 238. Ответов 3
Метки (Все метки)

Уважаемые тру программисты. Я написал класс для сложения больших чисел. Но вот смотрю на код и понимаю, что написано коряво. Смысл функции вроде бы прост. Идем справа налево и складываем числа, запоминая остаток. Глядя на код opensource проектов и прочее, мне кажется, что моё творение явно можно написать лучше. Тут и много строк, и как-то нелаконично, и куча переменных, несколько if. Помогите мне стать лучше, пожалуйста.

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
CBigNumber Sum(CBigNumber &rhs)
    {
        int overhead = 0;
        CBigNumber newNumber;
 
        list<int>::reverse_iterator it1 = m_values.rbegin();
        list<int>::reverse_iterator it2 = rhs.m_values.rbegin();
 
        while(it1 != m_values.rend() || it2 != rhs.m_values.rend())
        {
            int num1 = 0;
            if(it1 != m_values.rend())
                num1 = *it1++;          
 
            int num2 = 0;
            if(it2 != rhs.m_values.rend())
                num2 = *it2++;
 
            int value = num1 + num2 + overhead;
            if(value >= 10)
            {
                overhead = value / 10;
                value = value % 10;             
            }   
            else
            {
                overhead = 0;
            }
 
            newNumber.m_values.push_front(value);           
        }
 
        if(overhead)
            newNumber.m_values.push_front(overhead);
 
        return newNumber;
    };
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru