Difference between two large numbers

Here given code implementation process.

``````/*
Java Program
Difference between two large numbers
*/
class Differences
{
// Check that given first number is larger than second
public boolean isFirstLargest(String num1, String num2)
{
// Get the size
int n1 = num1.length();
int n2 = num2.length();
if (n1 > n2)
{
return true;
}
if (n2 > n1)
{
return false;
}
// When have number string size is equal size
// Check which is largest
for (int i = 0; i < n1; ++i)
{
if (num1.charAt(i) > num2.charAt(i))
{
return true;
}
else if (num1.charAt(i) < num2.charAt(i))
{
return false;
}
}
return true;
}
// Handles the request of find difference of given two string numbers
public void findDifference(String num1, String num2)
{
// Get the size
int n1 = num1.length() - 1;
int n2 = num2.length() - 1;
int carry = 0;
int digit = 0;
String result = "";
// Compare digit from the end
while (n1 >= 0 || n2 >= 0)
{
if (n1 >= 0 && n2 >= 0)
{
// When both number digit are exists
// Subtract digit from end
digit = (num1.charAt(n1) - '0') - (num2.charAt(n2) - '0') - carry;
if (digit < 0)
{
digit += 10;
carry = 1;
}
else
{
carry = 0;
}
// reduce length
n1--;
n2--;
}
else
{
// When the number is present in the first number
digit = (num1.charAt(n1) - '0') - carry;
if (digit < 0)
{
digit += 10;
carry = 1;
}
else
{
carry = 0;
}
// reduce length
n1--;
}
// Combine result
result = "" + digit + result;
}
System.out.print("\nGiven Numbers (" + num1 + "," + num2 + ") \n");
// Display calculated result
System.out.print("Difference : " + result + "\n");
}
public void difference(String num1, String num2)
{
if (isFirstLargest(num1, num2) == false)
{
// When num2 is largest
findDifference(num2, num1);
}
else
{
findDifference(num1, num2);
}
}
public static void main(String[] args)
{
// Test case
}
}``````

Output

``````Given Numbers (10,5)
Difference : 05

Given Numbers (4330,544)
Difference : 3786

Given Numbers (5633,30)
Difference : 5603

Given Numbers (7777454534234555454,4444465334454777)
Difference : 7773010068900100677``````
``````#include <iostream>
#include <string>
using namespace std;

// Check that given first number is larger than second
bool isFirstLargest(string num1, string num2)
{
// Get the size
int n1 = num1.size();
int n2 = num2.size();
if (n1 > n2)
{
return true;
}
if (n2 > n1)
{
return false;
}
// When have number string size is equal size
// Check which is largest
for (int i = 0; i < n1; ++i)
{
if (num1[i] > num2[i])
{
return true;
}
else if (num1[i] < num2[i])
{
return false;
}
}
return true;
}
// Handles the request of find difference of given two string numbers
void findDifference(string num1, string num2)
{
// Get the size
int n1 = num1.size() - 1;
int n2 = num2.size() - 1;
int carry = 0;
int digit = 0;
string result = "";
// Compare digit from the end
while (n1 >= 0 || n2 >= 0)
{
if (n1 >= 0 && n2 >= 0)
{
// When both number digit are exists
// Subtract digit from end
digit = (num1[n1] - '0') - (num2[n2] - '0') - carry;
if (digit < 0)
{
digit += 10;
carry = 1;
}
else
{
carry = 0;
}
// reduce length
n1--;
n2--;
}
else
{
// When the number is present in the first number
digit = (num1[n1] - '0') - carry;
if (digit < 0)
{
digit += 10;
carry = 1;
}
else
{
carry = 0;
}
// reduce length
n1--;
}
// Combine result
result = to_string(digit) + result;
}
cout << "\nGiven Numbers (" << num1 << "," << num2 << ") " << endl;
// Display calculated result
cout <<"Difference : "<< result << endl;
}
void difference(string num1, string num2)
{
if (isFirstLargest(num1, num2) == false)
{
// When num2 is largest
findDifference(num2, num1);
}
else
{
findDifference(num1, num2);
}
}
int main(int argc, char
const *argv[])
{
// Test
difference("10", "5");
difference("4330", "544");
difference("30", "5633");
difference("4444465334454777", "7777454534234555454");
return 0;
}
// When if to_string() not work then
// g++ -std=c++11 source.cpp [Compile by]
// ./a.out [Run by]``````

Output

``````Given Numbers (10,5)
Difference : 05

Given Numbers (4330,544)
Difference : 3786

Given Numbers (5633,30)
Difference : 5603

Given Numbers (7777454534234555454,4444465334454777)
Difference : 7773010068900100677``````
``````// Include namespace system
using System;
/*
C# Program
Difference between two large numbers
*/
public class Differences
{
// Check that given first number is larger than second
public Boolean isFirstLargest(String num1, String num2)
{
// Get the size
int n1 = num1.Length;
int n2 = num2.Length;
if (n1 > n2)
{
return true;
}
if (n2 > n1)
{
return false;
}
// When have number string size is equal size
// Check which is largest
for (int i = 0; i < n1; ++i)
{
if (num1[i] > num2[i])
{
return true;
}
else if (num1[i] < num2[i])
{
return false;
}
}
return true;
}
// Handles the request of find difference of given two string numbers
public void findDifference(String num1, String num2)
{
// Get the size
int n1 = num1.Length - 1;
int n2 = num2.Length - 1;
int carry = 0;
int digit = 0;
String result = "";
// Compare digit from the end
while (n1 >= 0 || n2 >= 0)
{
if (n1 >= 0 && n2 >= 0)
{
// When both number digit are exists
// Subtract digit from end
digit = (num1[n1] - '0') - (num2[n2] - '0') - carry;
if (digit < 0)
{
digit += 10;
carry = 1;
}
else
{
carry = 0;
}
// reduce length
n1--;
n2--;
}
else
{
// reduce length
// When the number is present in the first number
digit = (num1[n1] - '0') - carry;
if (digit < 0)
{
digit += 10;
carry = 1;
}
else
{
carry = 0;
}
n1--;
}
// Combine result
result = "" + digit + result;
}
Console.Write("\nGiven Numbers (" + num1 + "," + num2 + ") \n");
// Display calculated result
Console.Write("Difference : " + result + "\n");
}
public void difference(String num1, String num2)
{
if (isFirstLargest(num1, num2) == false)
{
// When num2 is largest
findDifference(num2, num1);
}
else
{
findDifference(num1, num2);
}
}
public static void Main(String[] args)
{
// Test case
}
}``````

Output

``````Given Numbers (10,5)
Difference : 05

Given Numbers (4330,544)
Difference : 3786

Given Numbers (5633,30)
Difference : 5603

Given Numbers (7777454534234555454,4444465334454777)
Difference : 7773010068900100677``````
``````<?php
/*
Php Program
Difference between two large numbers
*/
class Differences
{
// Check that given first number is larger than second
public	function isFirstLargest(\$num1, \$num2)
{
// Get the size
\$n1 = strlen(\$num1);
\$n2 = strlen(\$num2);
if (\$n1 > \$n2)
{
return true;
}
if (\$n2 > \$n1)
{
return false;
}
// When have number string size is equal size
// Check which is largest
for (\$i = 0; \$i < \$n1; ++\$i)
{
if (ord(\$num1[\$i]) > ord(\$num2[\$i]))
{
return true;
}
else if (ord(\$num1[\$i]) < ord(\$num2[\$i]))
{
return false;
}
}
return true;
}
// Handles the request of find difference of given two string numbers
public	function findDifference(\$num1, \$num2)
{
// Get the size
\$n1 = strlen(\$num1) - 1;
\$n2 = strlen(\$num2) - 1;
\$carry = 0;
\$digit = 0;
\$result = "";
// Compare digit from the end
while (\$n1 >= 0 || \$n2 >= 0)
{
if (\$n1 >= 0 && \$n2 >= 0)
{
// When both number digit are exists
// Subtract digit from end
\$digit = (ord(\$num1[\$n1]) - ord('0')) - (ord(\$num2[\$n2]) - ord('0')) - \$carry;
if (\$digit < 0)
{
\$digit += 10;
\$carry = 1;
}
else
{
\$carry = 0;
}
// reduce length
\$n1--;
\$n2--;
}
else
{
// reduce length
// When the number is present in the first number
\$digit = (ord(\$num1[\$n1]) - ord('0')) - \$carry;
if (\$digit < 0)
{
\$digit += 10;
\$carry = 1;
}
else
{
\$carry = 0;
}
\$n1--;
}
// Combine result
\$result = "". \$digit . \$result;
}
echo "\nGiven Numbers (". \$num1 .",". \$num2 .") \n";
// Display calculated result
echo "Difference : ". \$result ."\n";
}
public	function difference(\$num1, \$num2)
{
if (\$this->isFirstLargest(\$num1, \$num2) == false)
{
// When num2 is largest
\$this->findDifference(\$num2, \$num1);
}
else
{
\$this->findDifference(\$num1, \$num2);
}
}
}

function main()
{
// Test case
}
main();``````

Output

``````Given Numbers (10,5)
Difference : 05

Given Numbers (4330,544)
Difference : 3786

Given Numbers (5633,30)
Difference : 5603

Given Numbers (7777454534234555454,4444465334454777)
Difference : 7773010068900100677``````
``````/*
Node Js Program
Difference between two large numbers
*/
class Differences
{
// Check that given first number is larger than second
isFirstLargest(num1, num2)
{
// Get the size
var n1 = num1.length;
var n2 = num2.length;
if (n1 > n2)
{
return true;
}
if (n2 > n1)
{
return false;
}
// When have number string size is equal size
// Check which is largest
for (var i = 0; i < n1; ++i)
{
if ((num1[i]).charCodeAt(0) > (num2[i]).charCodeAt(0))
{
return true;
}
else if ((num1[i]).charCodeAt(0) < (num2[i]).charCodeAt(0))
{
return false;
}
}
return true;
}
// Handles the request of find difference of given two string numbers
findDifference(num1, num2)
{
// Get the size
var n1 = num1.length - 1;
var n2 = num2.length - 1;
var carry = 0;
var digit = 0;
var result = "";
// Compare digit from the end
while (n1 >= 0 || n2 >= 0)
{
if (n1 >= 0 && n2 >= 0)
{
// When both number digit are exists
// Subtract digit from end
digit = ((num1[n1]).charCodeAt(0) - ('0').charCodeAt(0)) - ((num2[n2]).charCodeAt(0) - ('0').charCodeAt(0)) - carry;
if (digit < 0)
{
digit += 10;
carry = 1;
}
else
{
carry = 0;
}
// reduce length
n1--;
n2--;
}
else
{
// reduce length
// When the number is present in the first number
digit = ((num1[n1]).charCodeAt(0) - ('0').charCodeAt(0)) - carry;
if (digit < 0)
{
digit += 10;
carry = 1;
}
else
{
carry = 0;
}
n1--;
}
// Combine result
result = "" + digit + result;
}
process.stdout.write("\nGiven Numbers (" + num1 + "," + num2 + ") \n");
// Display calculated result
process.stdout.write("Difference : " + result + "\n");
}
difference(num1, num2)
{
if (this.isFirstLargest(num1, num2) == false)
{
// When num2 is largest
this.findDifference(num2, num1);
}
else
{
this.findDifference(num1, num2);
}
}
}

function main()
{
// Test case
}
main();``````

Output

``````Given Numbers (10,5)
Difference : 05

Given Numbers (4330,544)
Difference : 3786

Given Numbers (5633,30)
Difference : 5603

Given Numbers (7777454534234555454,4444465334454777)
Difference : 7773010068900100677``````
``````#    Python 3 Program
#    Difference between two large numbers

class Differences :
#  Check that given first number is larger than second
def isFirstLargest(self, num1, num2) :
#  Get the size
n1 = len(num1)
n2 = len(num2)
if (n1 > n2) :
return True

if (n2 > n1) :
return False

#  When have number string size is equal size
#  Check which is largest
i = 0
while (i < n1) :
if (ord(num1[i]) > ord(num2[i])) :
return True

elif(ord(num1[i]) < ord(num2[i])) :
return False

i += 1

return True

#  Handles the request of find difference of given two string numbers
def findDifference(self, num1, num2) :
#  Get the size
n1 = len(num1) - 1
n2 = len(num2) - 1
carry = 0
digit = 0
result = ""
#  Compare digit from the end
while (n1 >= 0 or n2 >= 0) :
if (n1 >= 0 and n2 >= 0) :
#  When both number digit are exists
#  Subtract digit from end
digit = (ord(num1[n1]) - ord('0')) - (ord(num2[n2]) - ord('0')) - carry
if (digit < 0) :
digit += 10
carry = 1
else :
carry = 0

#  reduce length
n1 -= 1
n2 -= 1
else :
#  reduce length
#  When the number is present in the first number
digit = (ord(num1[n1]) - ord('0')) - carry
if (digit < 0) :
digit += 10
carry = 1
else :
carry = 0

n1 -= 1

#  Combine result
result =  str(digit) + result

print("\nGiven Numbers (", num1 ,",", num2 ,") ")
#  Display calculated result
print("Difference : ", result )

def difference(self, num1, num2) :
if (self.isFirstLargest(num1, num2) == False) :
#  When num2 is largest
self.findDifference(num2, num1)
else :
self.findDifference(num1, num2)

def main() :
#  Test case

if __name__ == "__main__": main()``````

Output

``````Given Numbers ( 10 , 5 )
Difference :  05

Given Numbers ( 4330 , 544 )
Difference :  3786

Given Numbers ( 5633 , 30 )
Difference :  5603

Given Numbers ( 7777454534234555454 , 4444465334454777 )
Difference :  7773010068900100677``````
``````#  Ruby Program
#  Difference between two large numbers

class Differences
#  Check that given first number is larger than second
def isFirstLargest(num1, num2)
#  Get the size
n1 = num1.length()
n2 = num2.length()
if (n1 > n2)
return true
end

if (n2 > n1)
return false
end

#  When have number string size is equal size
#  Check which is largest
i = 0
while (i < n1)
if ((num1[i]).ord > (num2[i]).ord)
return true
elsif((num1[i]).ord < (num2[i]).ord)
return false
end

i += 1
end

return true
end

#  Handles the request of find difference of given two string numbers
def findDifference(num1, num2)
#  Get the size
n1 = num1.length() - 1
n2 = num2.length() - 1
carry = 0
digit = 0
result = ""
#  Compare digit from the end
while (n1 >= 0 || n2 >= 0)
if (n1 >= 0 && n2 >= 0)
#  When both number digit are exists
#  Subtract digit from end
digit = ((num1[n1]).ord - ('0').ord) - ((num2[n2]).ord - ('0').ord) - carry
if (digit < 0)
digit += 10
carry = 1
else
carry = 0
end

#  reduce length
n1 -= 1
n2 -= 1
else
#  reduce length
#  When the number is present in the first number
digit = ((num1[n1]).ord - ('0').ord) - carry
if (digit < 0)
digit += 10
carry = 1
else
carry = 0
end

n1 -= 1
end

#  Combine result
result = digit.to_s + result
end

print("\nGiven Numbers (", num1 ,",", num2 ,") \n")
#  Display calculated result
print("Difference : ", result ,"\n")
end

def difference(num1, num2)
if (self.isFirstLargest(num1, num2) == false)
#  When num2 is largest
self.findDifference(num2, num1)
else
self.findDifference(num1, num2)
end

end

end

def main()
#  Test case
end

main()``````

Output

``````Given Numbers (10,5)
Difference : 05

Given Numbers (4330,544)
Difference : 3786

Given Numbers (5633,30)
Difference : 5603

Given Numbers (7777454534234555454,4444465334454777)
Difference : 7773010068900100677
``````
``````/*
Scala Program
Difference between two large numbers
*/
class Differences
{
// Check that given first number is larger than second
def isFirstLargest(num1: String, num2: String): Boolean = {
// Get the size
var n1: Int = num1.length();
var n2: Int = num2.length();
if (n1 > n2)
{
return true;
}
if (n2 > n1)
{
return false;
}
// When have number string size is equal size
// Check which is largest
var i: Int = 0;
while (i < n1)
{
if (num1(i) > num2(i))
{
return true;
}
else if (num1(i) < num2(i))
{
return false;
}
i += 1;
}
return true;
}
// Handles the request of find difference of given two string numbers
def findDifference(num1: String, num2: String): Unit = {
// Get the size
var n1: Int = num1.length() - 1;
var n2: Int = num2.length() - 1;
var carry: Int = 0;
var digit: Int = 0;
var result: String = "";
// Compare digit from the end
while (n1 >= 0 || n2 >= 0)
{
if (n1 >= 0 && n2 >= 0)
{
// When both number digit are exists
// Subtract digit from end
digit = (num1(n1) - '0') - (num2(n2) - '0') - carry;
if (digit < 0)
{
digit += 10;
carry = 1;
}
else
{
carry = 0;
}
// reduce length
n1 -= 1;
n2 -= 1;
}
else
{
// reduce length
// When the number is present in the first number
digit = (num1(n1) - '0') - carry;
if (digit < 0)
{
digit += 10;
carry = 1;
}
else
{
carry = 0;
}
n1 -= 1;
}
// Combine result
result = "" + digit + result;
}
print("\nGiven Numbers (" + num1 + "," + num2 + ") \n");
// Display calculated result
print("Difference : " + result + "\n");
}
def difference(num1: String, num2: String): Unit = {
if (this.isFirstLargest(num1, num2) == false)
{
// When num2 is largest
this.findDifference(num2, num1);
}
else
{
this.findDifference(num1, num2);
}
}
}
object Main
{
def main(args: Array[String]): Unit = {
var task: Differences = new Differences();
// Test case
}
}``````

Output

``````Given Numbers (10,5)
Difference : 05

Given Numbers (4330,544)
Difference : 3786

Given Numbers (5633,30)
Difference : 5603

Given Numbers (7777454534234555454,4444465334454777)
Difference : 7773010068900100677``````
``````/*
Swift 4 Program
Difference between two large numbers
*/
class Differences
{
// Check that given first number is larger than second
func isFirstLargest(_ num1: String, _ num2: String)->Bool
{
// Get the size
let n1: Int = num1.count;
let n2: Int = num2.count;
let s1 = Array(num1);
let s2 = Array(num2);
if (n1 > n2)
{
return true;
}
if (n2 > n1)
{
return false;
}
// When have number string size is equal size
// Check which is largest
var i: Int = 0;
while (i < n1)
{
if (Int(UnicodeScalar(String(s1[i]))!.value) > Int(UnicodeScalar(String(s2[i]))!.value))
{
return true;
}
else if (Int(UnicodeScalar(String(s1[i]))!.value) < Int(UnicodeScalar(String(s2[i]))!.value))
{
return false;
}
i += 1;
}
return true;
}
// Handles the request of find difference of given two string numbers
func findDifference(_ num1: String, _ num2: String)
{
// Get the size
var n1: Int = num1.count - 1;
var n2: Int = num2.count - 1;
var carry: Int = 0;
var digit: Int = 0;
let s1 = Array(num1);
let s2 = Array(num2);
var result: String = "";
// Compare digit from the end
while (n1 >= 0 || n2 >= 0)
{
if (n1 >= 0 && n2 >= 0)
{
// When both number digit are exists
// Subtract digit from end
digit = (Int(UnicodeScalar(String(s1[n1]))!.value) - Int(UnicodeScalar("0")!.value)) - (Int(UnicodeScalar(String(s2[n2]))!.value) - Int(UnicodeScalar("0")!.value)) - carry;
if (digit < 0)
{
digit += 10;
carry = 1;
}
else
{
carry = 0;
}
// reduce length
n1 -= 1;
n2 -= 1;
}
else
{
// reduce length
// When the number is present in the first number
digit = Int(UnicodeScalar(String(s1[n1]))!.value) - Int(UnicodeScalar("0")!.value) - carry;
if (digit < 0)
{
digit += 10;
carry = 1;
}
else
{
carry = 0;
}
n1 -= 1;
}

// Combine result
result = String(digit) + result;
}
print("\nGiven Numbers (", num1, ",", num2, ") ");
// Display calculated result
print("Difference : ", result);
}
func difference(_ num1: String, _ num2: String)
{
if (self.isFirstLargest(num1, num2) == false)
{
// When num2 is largest
self.findDifference(num2, num1);
}
else
{
self.findDifference(num1, num2);
}
}
}
func main()
{
// Test case
}
main();``````

Output

``````Given Numbers ( 10 , 5 )
Difference :  05

Given Numbers ( 4330 , 544 )
Difference :  3786

Given Numbers ( 5633 , 30 )
Difference :  5603

Given Numbers ( 7777454534234555454 , 4444465334454777 )
Difference :  7773010068900100677``````
``````/*
Kotlin Program
Difference between two large numbers
*/
class Differences
{
// Check that given first number is larger than second
fun isFirstLargest(num1: String, num2: String): Boolean
{
// Get the size
var n1: Int = num1.count();
var n2: Int = num2.count();
if (n1 > n2)
{
return true;
}
if (n2 > n1)
{
return false;
}
// When have number string size is equal size
// Check which is largest
var i: Int = 0;
while (i < n1)
{
if (num1[i] > num2[i])
{
return true;
}
else if (num1[i] < num2[i])
{
return false;
}
i += 1;
}
return true;
}
// Handles the request of find difference of given two string numbers
fun findDifference(num1: String, num2: String): Unit
{
// Get the size
var n1: Int = num1.count() - 1;
var n2: Int = num2.count() - 1;
var carry: Int = 0;
var digit: Int ;
var result: String = "";
// Compare digit from the end
while (n1 >= 0 || n2 >= 0)
{
if (n1 >= 0 && n2 >= 0)
{
// When both number digit are exists
// Subtract digit from end
digit = (num1[n1] - '0') - (num2[n2] - '0') - carry;
if (digit < 0)
{
digit += 10;
carry = 1;
}
else
{
carry = 0;
}
// reduce length
n1 -= 1;
n2 -= 1;
}
else
{
// reduce length
// When the number is present in the first number
digit = (num1[n1] - '0') - carry;
if (digit < 0)
{
digit += 10;
carry = 1;
}
else
{
carry = 0;
}
n1 -= 1;
}
// Combine result
result = "" + digit + result;
}
print("\nGiven Numbers (" + num1 + "," + num2 + ") \n");
// Display calculated result
print("Difference : " + result + "\n");
}
fun difference(num1: String, num2: String): Unit
{
if (this.isFirstLargest(num1, num2) == false)
{
// When num2 is largest
this.findDifference(num2, num1);
}
else
{
this.findDifference(num1, num2);
}
}
}
fun main(args: Array < String > ): Unit
{
// Test case
}``````

Output

``````Given Numbers (10,5)
Difference : 05

Given Numbers (4330,544)
Difference : 3786

Given Numbers (5633,30)
Difference : 5603

Given Numbers (7777454534234555454,4444465334454777)
Difference : 7773010068900100677``````

Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment

Dziber     84 Day ago
``So why is 10-5 returning 05 instead of 5?``