Given an integer N ? 1, the task is to find the smallest and the largest sum of two N digit numbers.
Examples:
Input: N = 1
Output:
Largest = 18
Smallest = 0
Largest 1-digit number is 9 and 9 + 9 = 18
Smallest 1-digit number is 0 and 0 + 0 = 0
Input: N = 2
Output:
Largest = 198
Smallest = 20
Approach:
- For largest: The answer will be 2 * (10N – 1) because the series of sum of two n digit numbers will go on like 2 * 9, 2 * 99, 2 * 999, …
-
For smallest:
- If N = 1 then the answer will be 0.
- If N > 1 then the answer will be 2 * (10N – 1) because the series of sum of two n digit numbers will go on like 0, 20, 200, 2000, …
Below is the implementation of the above approach:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std;
// Function to return the smallest sum // of 2 n-digit numbers int smallestSum( int n)
{ if (n == 1)
return 0;
return (2 * pow (10, n - 1));
} // Function to return the largest sum // of 2 n-digit numbers int largestSum( int n)
{ return (2 * ( pow (10, n) - 1));
} // Driver code int main()
{ int n = 4;
cout << "Largest = " << largestSum(n) << endl;
cout << "Smallest = " << smallestSum(n);
return 0;
} |
Java
// Java implementation of the approach class GFG {
// Function to return the smallest sum
// of 2 n-digit numbers
static int smallestSum( int n)
{
if (n == 1 )
return 0 ;
return ( 2 * ( int )Math.pow( 10 , n - 1 ));
}
// Function to return the largest sum
// of 2 n-digit numbers
static int largestSum( int n)
{
return ( 2 * (( int )Math.pow( 10 , n) - 1 ));
}
// Driver code
public static void main(String args[])
{
int n = 4 ;
System.out.println( "Largest = " + largestSum(n));
System.out.print( "Smallest = " + smallestSum(n));
}
} |
Python3
# Python3 implementation of the approach # Function to return the smallest sum # of 2 n-digit numbers def smallestSum(n):
if (n = = 1 ):
return 0
return ( 2 * pow ( 10 , n - 1 ))
# Function to return the largest sum # of 2 n-digit numbers def largestSum(n):
return ( 2 * ( pow ( 10 , n) - 1 ))
# Driver code n = 4
print ( "Largest = " , largestSum(n))
print ( "Smallest = " , smallestSum(n))
|
C#
// C# implementation of the approach using System;
class GFG {
// Function to return the smallest sum
// of 2 n-digit numbers
static int smallestSum( int n)
{
if (n == 1)
return 0;
return (2 * ( int )Math.Pow(10, n - 1));
}
// Function to return the largest sum
// of 2 n-digit numbers
static int largestSum( int n)
{
return (2 * (( int )Math.Pow(10, n) - 1));
}
// Driver code
public static void Main()
{
int n = 4;
Console.WriteLine( "Largest = " + largestSum(n));
Console.Write( "Smallest = " + smallestSum(n));
}
} |
PHP
<?php // PHP implementation of the approach // Function to return the smallest sum // of 2 n-digit numbers function smallestSum( $n )
{ if ( $n == 1)
return 0;
return (2 * pow(10, $n - 1));
} // Function to return the largest sum // of 2 n-digit numbers function largestSum( $n )
{ return 2 * ( pow(10, $n ) - 1 );
} // Driver code $n = 4;
echo "Largest = " . largestSum( $n ) . "\n" ;
echo "Smallest = " . smallestSum( $n );
?> |
Javascript
<script> // Javascript implementation of the approach // Function to return the smallest sum // of 2 n-digit numbers function smallestSum(n)
{ if (n == 1)
return 0;
return (2 * Math.pow(10, n - 1));
} // Function to return the largest sum // of 2 n-digit numbers function largestSum(n)
{ return (2 * (Math.pow(10, n) - 1));
} // Driver code var n = 4;
document.write( "Largest = " + largestSum(n) + "<br>" );
document.write( "Smallest = " + smallestSum(n));
// This code is contributed by noob2000. </script> |
Output:
Largest = 19998 Smallest = 2000
Time Complexity: O(log n)
Auxiliary Space: O(1)