Untitled
unknown
plain_text
a year ago
1.7 kB
4
Indexable
#include <iostream> #include <vector> class LargeInteger { private: std::vector<int> digits; public: LargeInteger(const std::vector<int>& num) : digits(num) {} // Function to add two LargeInteger objects LargeInteger add(const LargeInteger& other) const { LargeInteger result({0}); // Initialize result with a single digit 0 int carry = 0; int size = std::max(digits.size(), other.digits.size()); std::vector<int> array1(digits.begin(), digits.end()); std::vector<int> array2(other.digits.begin(), other.digits.end()); array1.resize(size, 0); array2.resize(size, 0); // Iterate through each digit and perform addition for (int i = size - 1; i >= 0; --i) { int total = array1[i] + array2[i] + carry; result.digits.insert(result.digits.begin(), total % 10); carry = total / 10; } // If there is a carry after the last digit, add it to the result while (carry > 0) { result.digits.insert(result.digits.begin(), carry % 10); carry /= 10; } return result; } // Function to display the LargeInteger void display() const { for (int digit : digits) { std::cout << digit; } std::cout << std::endl; } }; int main() { // Example usage: LargeInteger num1({1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0}); LargeInteger num2({9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0}); LargeInteger sum_result = num1.add(num2); // Print the result std::cout << "Sum: "; sum_result.display(); return 0; }
Editor is loading...
Leave a Comment