Skip to main content

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)
	{
		Differences task = new Differences();
		// Test case
		task.difference("10", "5");
		task.difference("4330", "544");
		task.difference("30", "5633");
		task.difference("4444465334454777", "7777454534234555454");
	}
}

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)
	{
		Differences task = new Differences();
		// Test case
		task.difference("10", "5");
		task.difference("4330", "544");
		task.difference("30", "5633");
		task.difference("4444465334454777", "7777454534234555454");
	}
}

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()
{
	$task = new Differences();
	// Test case
	$task->difference("10", "5");
	$task->difference("4330", "544");
	$task->difference("30", "5633");
	$task->difference("4444465334454777", "7777454534234555454");
}
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()
{
	var task = new Differences();
	// Test case
	task.difference("10", "5");
	task.difference("4330", "544");
	task.difference("30", "5633");
	task.difference("4444465334454777", "7777454534234555454");
}
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() :
	task = Differences()
	#  Test case
	task.difference("10", "5")
	task.difference("4330", "544")
	task.difference("30", "5633")
	task.difference("4444465334454777", "7777454534234555454")

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() 
	task = Differences.new()
	#  Test case
	task.difference("10", "5")
	task.difference("4330", "544")
	task.difference("30", "5633")
	task.difference("4444465334454777", "7777454534234555454")
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
		task.difference("10", "5");
		task.difference("4330", "544");
		task.difference("30", "5633");
		task.difference("4444465334454777", "7777454534234555454");
	}
}

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()
{
    let task: Differences = Differences();
    // Test case
    task.difference("10", "5");
    task.difference("4330", "544");
    task.difference("30", "5633");
    task.difference("4444465334454777", "7777454534234555454");
}
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
{
	var task: Differences = Differences();
	// Test case
	task.difference("10", "5");
	task.difference("4330", "544");
	task.difference("30", "5633");
	task.difference("4444465334454777", "7777454534234555454");
}

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