Check out example codes for "subtracting two large numbers". It will help you in understanding the concepts better.

Code Example 1

``````// C++ program to find difference of two large numbers.
#include<bits/stdc++.h>
using namespace std;

// Returns true if str1 is smaller than str2.
bool isSmaller(string str1, string str2)
{
// Calculate lengths of both string
int n1 = str1.length(), n2 = str2.length();

if (n1 < n2)
return true;
if (n2 < n1)
return false;

for (int i=0; i<n1; i++)
if (str1[i] < str2[i])
return true;
else if (str1[i] > str2[i])
return false;

return false;
}

// Function for find difference of larger numbers
string findDiff(string str1, string str2)
{
// Before proceeding further, make sure str1
// is not smaller
if (isSmaller(str1, str2))
swap(str1, str2);

// Take an empty string for storing result
string str = "";

// Calculate length of both string
int n1 = str1.length(), n2 = str2.length();

// Reverse both of strings
reverse(str1.begin(), str1.end());
reverse(str2.begin(), str2.end());

int carry = 0;

// Run loop till small string length
// and subtract digit of str1 to str2
for (int i=0; i<n2; i++)
{
// Do school mathematics, compute difference of
// current digits

int sub = ((str1[i]-'0')-(str2[i]-'0')-carry);

// If subtraction is less then zero
// take carry as 1 for calculating next step
if (sub < 0)
{
sub = sub + 10;
carry = 1;
}
else
carry = 0;

str.push_back(sub + '0');
}

// subtract remaining digits of larger number
for (int i=n2; i<n1; i++)
{
int sub = ((str1[i]-'0') - carry);

// if the sub value is -ve, then make it positive
if (sub < 0)
{
sub = sub + 10;
carry = 1;
}
else
carry = 0;

str.push_back(sub + '0');
}

// reverse resultant string
reverse(str.begin(), str.end());

return str;
}

// Driver code
int main()
{
string str1 = "978";
string str2 = "12977";
cout << findDiff(str1, str2) << endl;

string s1 = "100";
string s2 = "1000000";
cout << findDiff(s1,s2);

return 0;
}``````

Learn ReactJs, React Native from akashmittal.com