Как можно реализовать длинную арифметику в C++ ? Скиньте код, пж

1 Мая 2023 в 19:40
55 +1
0
Ответы
1

В C++ для реализации длинной арифметики можно использовать структуру, которая будет представлять числа как массив цифр или как строку. Вот пример реализации длинной арифметики с использованием строки:

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string addLongNumbers(string num1, string num2) {
string result;
int carry = 0;
reverse(num1.begin(), num1.end());
reverse(num2.begin(), num2.end());
for (int i = 0; i < max(num1.size(), num2.size()); i++) {
int digit1 = i < num1.size() ? num1[i] - '0' : 0;
int digit2 = i < num2.size() ? num2[i] - '0' : 0;
int sum = digit1 + digit2 + carry;
result += to_string(sum % 10);
carry = sum / 10;
}
if (carry) {
result += to_string(carry);
}
reverse(result.begin(), result.end());
return result;
}
int main() {
string num1 = "12345678901234567890";
string num2 = "98765432109876543210";
string sum = addLongNumbers(num1, num2);
cout << "Sum: " << sum << endl;
return 0;
}

Этот код реализует функцию addLongNumbers, которая складывает два числа заданной длины, представленные в виде строк, и возвращает результат также в виде строки. В функции учитывается перенос разряда при сложении и строки складываются справа налево.

16 Апр 2024 в 16:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир