Dado un valor entero n, encuentre el n-ésimo entero positivo cuya suma es 10.
Ejemplos:
Input: n = 2 Output: 28 The first number with sum of digits as 10 is 19. Second number is 28. Input: 15 Output: 154
Método 1 (Simple):
Recorremos todos los números. Para cada número, encontramos la suma de los dígitos. Nos detenemos cuando encontramos el n-ésimo número con la suma de dígitos como 10.
C++
// Simple CPP program to find n-th number // with sum of digits as 10. #include <bits/stdc++.h> using namespace std; int findNth(int n) { int count = 0; for (int curr = 1;; curr++) { // Find sum of digits in current no. int sum = 0; for (int x = curr; x > 0; x = x / 10) sum = sum + x % 10; // If sum is 10, we increment count if (sum == 10) count++; // If count becomes n, we return current // number. if (count == n) return curr; } return -1; } int main() { printf("%d\n", findNth(5)); return 0; }
Java
// Java program to find n-th number // with sum of digits as 10. import java.util.*; import java.lang.*; public class GFG { public static int findNth(int n) { int count = 0; for (int curr = 1;; curr++) { // Find sum of digits in current no. int sum = 0; for (int x = curr; x > 0; x = x / 10) sum = sum + x % 10; // If sum is 10, we increment count if (sum == 10) count++; // If count becomes n, we return current // number. if (count == n) return curr; } } public static void main(String[] args) { System.out.print(findNth(5)); } } // Contributed by _omg
Python3
# Python3 program to find n-th number # with sum of digits as 10. import itertools # function to find required number def findNth(n): count = 0 for curr in itertools.count(): # Find sum of digits in current no. sum = 0 x = curr while(x): sum = sum + x % 10 x = x // 10 # If sum is 10, we increment count if (sum == 10): count = count + 1 # If count becomes n, we return current # number. if (count == n): return curr return -1 # Driver program if __name__=='__main__': print(findNth(5)) # This code is contributed by # Sanjit_Prasad
C#
// C# program to find n-th number // with sum of digits as 10. using System; class GFG { public static int findNth(int n) { int count = 0; for (int curr = 1;; curr++) { // Find sum of digits in current no. int sum = 0; for (int x = curr; x > 0; x = x / 10) sum = sum + x % 10; // If sum is 10, we increment count if (sum == 10) count++; // If count becomes n, we // return current number. if (count == n) return curr; } } // Driver Code static public void Main() { Console.WriteLine(findNth(5)); } } // This code is contributed // by Sach_Code
PHP
<?php // Simple PHP program to find n-th // number with sum of digits as 10. function findNth($n) { $count = 0; for ($curr = 1; ; $curr++) { // Find sum of digits in // current no. $sum = 0; for ($x = $curr; $x > 0; $x = $x / 10) $sum = $sum + $x % 10; // If sum is 10, we increment // count if ($sum == 10) $count++; // If count becomes n, we return // current number. if ($count == $n) return $curr; } return -1; } // Driver Code echo findNth(5); // This code is contributed by Sach . ?>
Javascript
<script> // Simple JavaScript program to find n-th number // with sum of digits as 10. function findNth(n) { let count = 0; for (let curr = 1;; curr++) { // Find sum of digits in current no. let sum = 0; for (let x = curr; x > 0; x = Math.floor(x / 10)) sum = sum + x % 10; // If sum is 10, we increment count if (sum == 10) count++; // If count becomes n, we return current // number. if (count == n) return curr; } return -1; } document.write(findNth(5)); // This code is contributed by Surbhi Tyagi. </script>
55
Método 2 (Eficiente):
Si miramos más de cerca, podemos notar que todos los múltiplos de 9 están presentes en la progresión aritmética 19, 28, 37, 46, 55, 64, 73, 82, 91, 100, 109,… Sin
embargo , hay números en la serie anterior cuya suma de dígitos no es 10, por ejemplo, 100. Entonces, en lugar de verificar uno por uno, comenzamos con 19 e incrementamos en 9.
C++
// Simple CPP program to find n-th number // with sum of digits as 10. #include <bits/stdc++.h> using namespace std; int findNth(int n) { int count = 0; for (int curr = 19;; curr += 9) { // Find sum of digits in current no. int sum = 0; for (int x = curr; x > 0; x = x / 10) sum = sum + x % 10; // If sum is 10, we increment count if (sum == 10) count++; // If count becomes n, we return current // number. if (count == n) return curr; } return -1; } int main() { printf("%d\n", findNth(5)); return 0; }
Java
// Java program to find n-th number // with sum of digits as 10. import java.util.*; import java.lang.*; public class GFG { public static int findNth(int n) { int count = 0; for (int curr = 19;; curr += 9) { // Find sum of digits in current no. int sum = 0; for (int x = curr; x > 0; x = x / 10) sum = sum + x % 10; // If sum is 10, we increment count if (sum == 10) count++; // If count becomes n, we return current // number. if (count == n) return curr; } } public static void main(String[] args) { System.out.print(findNth(5)); } } // Contributed by _omg
Python3
# Python3 program to find n-th # number with sum of digits as 10. def findNth(n): count = 0; curr = 19; while (True): # Find sum of digits in # current no. sum = 0; x = curr; while (x > 0): sum = sum + x % 10; x = int(x / 10); # If sum is 10, we increment # count if (sum == 10): count+= 1; # If count becomes n, we return # current number. if (count == n): return curr; curr += 9; return -1; # Driver Code print(findNth(5)); # This code is contributed # by mits
C#
// C# program to find n-th number // with sum of digits as 10. using System; class GFG { public static int findNth(int n) { int count = 0; for (int curr = 19;; curr += 9) { // Find sum of digits in // current no. int sum = 0; for (int x = curr; x > 0; x = x / 10) sum = sum + x % 10; // If sum is 10, we increment // count if (sum == 10) count++; // If count becomes n, we return // current number. if (count == n) return curr; } } // Driver Code static public void Main() { Console.WriteLine(findNth(5)); } } // This code is contributed // by Sach_Code
PHP
<?php // Simple PHP program to find n-th // number with sum of digits as 10. function findNth($n) { $count = 0; for ($curr = 19; ;$curr += 9) { // Find sum of digits in // current no. $sum = 0; for ($x = $curr; $x > 0; $x = (int)$x / 10) $sum = $sum + $x % 10; // If sum is 10, we increment // count if ($sum == 10) $count++; // If count becomes n, we return // current number. if ($count == $n) return $curr; } return -1; } // Driver Code echo findNth(5); // This code is contributed // by Sach_Code ?>
Javascript
<script> // Simple Javascript program to find n-th // number with sum of digits as 10. function findNth(n) { let count = 0; for (let curr = 19; ;curr += 9) { // Find sum of digits in // current no. let sum = 0; for (let x = curr; x > 0; x = parseInt(x / 10)) sum = sum + x % 10; // If sum is 10, we increment // count if (sum == 10) count++; // If count becomes n, we return // current number. if (count == n) return curr; } return -1; } // Driver Code document.write(findNth(5)); // This code is contributed // by gfgking </script>
55
Publicación traducida automáticamente
Artículo escrito por Sumit bangar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA