Related Articles
Smallest and Largest sum of two n-digit numbers
• Last Updated : 29 Apr, 2019

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

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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 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



Output:

Largest = 19998
Smallest = 2000

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :