Dado un entero N , la tarea es imprimir los primeros N enteros cuya suma de dígitos sea 10 .
Ejemplos:
Entrada: N = 4
Salida: 19 28 37 46
Entrada: N = 6
Salida: 19 28 37 46 55 64
Enfoque: Inicialice num = 19 para obtener el primer número de la serie, ahora agregue 9 al número anterior y verifique si la suma de los dígitos del nuevo número es 10 . En caso afirmativo, entonces este es el siguiente número de la serie, esto se debe a que la diferencia entre dos números consecutivos cualesquiera de la serie requerida es al menos 9 .
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 // sum of digits of n int sum(int n) { int sum = 0; while (n) { // Add the last digit to the sum sum = sum + n % 10; // Remove last digit n = n / 10; } // Return the sum of digits return sum; } // Function to print the first n numbers // whose sum of digits is 10 void firstN(int n) { // First number of the series is 19 int num = 19, cnt = 1; while (cnt != n) { // If the sum of digits of the // current number is equal to 10 if (sum(num) == 10) { // Print the number cout << num << " "; cnt++; } // Add 9 to the previous number num += 9; } } // Driver code int main() { int n = 10; firstN(n); return 0; }
Java
// Java implementation of the approach import java.util.*; class GFG { // Function to return the // sum of digits of n static int sum(int n) { int sum = 0; while (n > 0) { // Add the last digit to the sum sum = sum + n % 10; // Remove last digit n = n / 10; } // Return the sum of digits return sum; } // Function to print the first n numbers // whose sum of digits is 10 static void firstN(int n) { // First number of the series is 19 int num = 19, cnt = 1; while (cnt != n) { // If the sum of digits of the // current number is equal to 10 if (sum(num) == 10) { // Print the number System.out.print(num + " "); cnt++; } // Add 9 to the previous number num += 9; } } // Driver code public static void main(String[] args) { int n = 10; firstN(n); } } // This code is contributed by Rajput-Ji
Python3
# Python3 implementation of the approach # Function to return the # sum of digits of n def sum(n) : sum = 0; while (n) : # Add the last digit to the sum sum = sum + n % 10; # Remove last digit n = n // 10; # Return the sum of digits return sum; # Function to print the first n numbers # whose sum of digits is 10 def firstN(n) : # First number of the series is 19 num = 19; cnt = 1; while (cnt != n) : # If the sum of digits of the # current number is equal to 10 if (sum(num) == 10) : # Print the number print(num,end= " "); cnt += 1; # Add 9 to the previous number num += 9; # Driver code if __name__ == "__main__" : n = 10; firstN(n); # This code is contributed by AnkitRai01
C#
// C# implementation of the approach using System; class GFG { // Function to return the // sum of digits of n static int sum(int n) { int sum = 0; while (n > 0) { // Add the last digit to the sum sum = sum + n % 10; // Remove last digit n = n / 10; } // Return the sum of digits return sum; } // Function to print the first n numbers // whose sum of digits is 10 static void firstN(int n) { // First number of the series is 19 int num = 19, cnt = 1; while (cnt != n) { // If the sum of digits of the // current number is equal to 10 if (sum(num) == 10) { // Print the number Console.Write(num + " "); cnt++; } // Add 9 to the previous number num += 9; } } // Driver code public static void Main(String[] args) { int n = 10; firstN(n); } } // This code is contributed by PrinciRaj1992
Javascript
<script> // JavaScript implementation of the approach // Function to return the // sum of digits of n function sum(n) { var sum = 0; while (n > 0) { // Add the last digit to the sum sum = sum + n % 10; // Remove last digit n = parseInt(n / 10); } // Return the sum of digits return sum; } // Function to print the first n numbers // whose sum of digits is 10 function firstN(n) { // First number of the series is 19 var num = 19, cnt = 1; while (cnt != n) { // If the sum of digits of the // current number is equal to 10 if (sum(num) == 10) { // Print the number document.write(num + " "); cnt++; } // Add 9 to the previous number num += 9; } } // Driver code var n = 10; firstN(n); // This code contributed by Rajput-Ji </script>
19 28 37 46 55 64 73 82 91
Complejidad del tiempo: O(n*log(n))
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por koulick_sadhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA