Dado un número entero N ≥ 1 , la tarea es encontrar la suma más pequeña y más grande de dos números de N dígitos.
Ejemplos:
Entrada: N = 1
Salida:
Mayor = 18
Menor = 0
El mayor número de 1 dígito es 9 y 9 + 9 = 18
El menor número de 1 dígito es 0 y 0 + 0 = 0
Entrada: N = 2
Salida:
Mayor = 198
Menor = 20
Acercarse:
- Para el más grande: la respuesta será 2 * (10 N – 1) porque la serie de la suma de dos números de n dígitos continuará como 2 * 9, 2 * 99, 2 * 999, …
- Para los más pequeños:
- Si N = 1 , la respuesta será 0 .
- Si N > 1 , la respuesta será 2 * (10 N – 1 ) porque la serie de la suma de dos números de n dígitos seguirá como 0, 20, 200, 2000, …
A continuación se muestra la implementación del enfoque anterior:
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>
Producción:
Largest = 19998 Smallest = 2000
Complejidad de tiempo: O (log n)
Espacio Auxiliar: O(1)