Given two large or small numbers, the task is to find the last digit of the product of these two numbers.
Examples:
Input: a = 1234567891233789, b = 567891233156156 Output: 4 Input: a = 123, b = 456 Output: 8
Approach: In general, the last digit of multiplication of 2 numbers a and b is the last digit of the product of the LSB of these two numbers.
For example: For a = 123 and b = 456,
the last digit of a*b
= Last digit of ((LSB of a)*(LSB of b))
= Last digit of ((3)*(6))
= Last digit of (18)
= 8
Below is the implementation of the above approach:
C++
// C++ implementation of the above approach #include <bits/stdc++.h> using namespace std;
// Function to print last digit of product a * b void lastDigit(string a, string b)
{ int lastDig = (a[a.length() - 1] - '0' )
* (b[b.length() - 1] - '0' );
cout << lastDig % 10;
} // Driver code int main()
{ string a = "1234567891233" , b = "1234567891233156" ;
lastDigit(a, b);
return 0;
} |
Java
// Java implementation of the above approach class Solution {
// Function to print last digit of product a * b
public static void lastDigit(String a, String b)
{
int lastDig = (a.charAt(a.length() - 1 ) - '0' )
* (b.charAt(b.length() - 1 ) - '0' );
System.out.println(lastDig % 10 );
}
// Driver code
public static void main(String[] args)
{
String a = "1234567891233" , b = "1234567891233156" ;
lastDigit(a, b);
}
} |
Python3
# Python3 implementation of the above approach # Function to print the last digit # of product a * b def lastDigit(a, b):
lastDig = (( int (a[ len (a) - 1 ]) - int ( '0' )) *
( int (b[ len (b) - 1 ]) - int ( '0' )))
print (lastDig % 10 )
# Driver code if __name__ = = '__main__' :
a, b = "1234567891233" , "1234567891233156"
lastDigit(a, b)
# This code has been contributed # by 29AjayKumar |
C#
// CSharp implementation of the above approach using System;
class Solution {
// Function to print last digit of product a * b
public static void lastDigit(String a, String b)
{
int lastDig = (a[a.Length - 1] - '0' )
* (b[b.Length - 1] - '0' );
Console.Write(lastDig % 10);
}
// Driver code
public static void Main()
{
String a = "1234567891233" , b = "1234567891233156" ;
lastDigit(a, b);
}
} |
PHP
<?php // PHP implementation of the above approach // Function to print last digit of product a * b function lastDigit( $a , $b )
{ $lastDig = (ord( $a [ strlen ( $a ) - 1]) - 48) *
(ord( $b [ strlen ( $b ) - 1]) - 48);
echo $lastDig % 10;
} // Driver code $a = "1234567891233" ;
$b = "1234567891233156" ;
lastDigit( $a , $b );
// This code is contributed by ihritik ?> |
Javascript
<script>
// Javascript implementation of the above approach
// Function to print last digit of product a * b
function lastDigit(a, b) {
var lastDig = (a[a.length - 1] - '0' )
* (b[b.length - 1] - '0' );
document.write(lastDig % 10);
}
// Driver code
var a = "1234567891233" , b = "1234567891233156" ;
lastDigit(a, b);
// This code is contributed by rrrtnx. </script>
|
Output:
8
Time Complexity: O(1).
Auxiliary Space: O(1)