 
  Data Structure Data Structure
 Networking Networking
 RDBMS RDBMS
 Operating System Operating System
 Java Java
 MS Excel MS Excel
 iOS iOS
 HTML HTML
 CSS CSS
 Android Android
 Python Python
 C Programming C Programming
 C++ C++
 C# C#
 MongoDB MongoDB
 MySQL MySQL
 Javascript Javascript
 PHP PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Sum of two large numbers in C++
In this problem, we are given two string that defines two large numbers. Our task is to create a program to find the sum of two large numbers.
Let’s take an example to understand the problem,
Input: number1 = “341299123919” number2 = “52413424” Output: 341351537343
To solve this problem, we will traverse both the string. And add digit by digit and propagate the carry. And store the result digit by digit to sum string.
Algorithm
Initialize sum = 0, carry = 0. Step 1: loop from n to 0. Step 1.1: intSum = number1[i] + number2[i] Step 1.2: carry = intSum/10. Sum += intSum Step 2: sum += carry. Step 3: return sum.
Example
Program to illustrate the working of our solution,
#include<bits/stdc++.h> using namespace std; string addBigNumbers(string number1, string number2) {    if (number1.length() > number2.length())     swap(number1, number2);    string sum = "";    int len1 = number1.length();    int len2 = number2.length();    int digitDiff = len2 - len1;    int carry = 0;    int intSum;    for (int i=len1-1; i>=0; i--) {       intSum = ((number1[i]-'0') + (number2[i+digitDiff]- '0') + carry);       sum.push_back(intSum%10 + '0');       carry = intSum/10;    }    for (int i=digitDiff-1; i>=0; i--) {       intSum = ((number2[i]-'0')+carry);       sum.push_back(intSum%10 + '0');       carry = intSum/10;    }    if (carry)     sum.push_back(carry+'0');    reverse(sum.begin(), sum.end());    return sum; } int main() {    string number1 = "235235823852";    string number2 = "45230820348";    cout<<"Sum of two large numbers is "<<addBigNumbers(number1,x number2);    return 0; }  Output
Sum of two large numbers is 280466644200
Advertisements
 