Dado un número positivo n. Necesitamos encontrar un número x tal que la suma de los dígitos de x sea igual a n.
Si tal x no es posible imprima -1.
Ejemplos:
Input : n = 21 Output : x = 15 Explanation : x + its digit sum = 15 + 1 + 5 = 21 Input : n = 5 Output : -1
Iteramos de 1 a n y para cada número intermedio, x encuentra su suma de dígitos y luego la sumamos a x, si eso es igual a n, entonces x será nuestra respuesta requerida.
// iterate from 1 to n. For every no. // check if its digit sum with it is // equal to n. for (int i = 0; i <= n; i++) if (i + digSum(i) == n) return i; return -1;
C++
// CPP program to find x such that x + // digSum(x) is equal to n. #include <bits/stdc++.h> using namespace std; // utility function for digit sum int digSum(int n) { int sum = 0, rem = 0; while (n) { rem = n % 10; sum += rem; n /= 10; } return sum; } // function for finding x int findX(int n) { // iterate from 1 to n. For every no. // check if its digit sum with it is // equal to n. for (int i = 0; i <= n; i++) if (i + digSum(i) == n) return i; // if no such i found return -1 return -1; } // driver function int main() { int n = 43; cout << "x = " << findX(n); return 0; }
Java
// Java program to find x such that x + // digSum(x) is equal to n. class GFG { // utility function for digit sum static int digSum(int n) { int sum = 0, rem = 0; while (n>0) { rem = n % 10; sum += rem; n /= 10; } return sum; } // function for finding x static int findX(int n) { // iterate from 1 to n. For every no. // check if its digit sum with it is // equal to n. for (int i = 0; i <= n; i++) if (i + digSum(i) == n) return i; // if no such i found return -1 return -1; } // Driver code public static void main (String[] args) { int n = 43; System.out.println("x = "+findX(n)); } } // This code is contributed by Anant Agarwal.
Python3
# Python3 program to find # x such that dx + igSum(x) # is equal to n. # utility function # for digit sum def digSum(n): sum = 0; rem = 0; while(n): rem = n % 10; sum = sum + rem; n = int(n / 10); return sum; # function for finding x def findX(n): # iterate from 1 to n. # For every no. # check if its digit # sum with it is# equal to n. for i in range(n + 1): if (i + digSum(i) == n): return i; # if no such i # found return -1 return -1; # Driver Code n = 43; print("x = ", findX(n)); # This code is contributed by mits
C#
// C# program to find x such that // x + digSum(x) is equal to n. using System; class GFG { // utility function for digit sum static int digSum(int n) { int sum = 0, rem = 0; while (n > 0) { rem = n % 10; sum += rem; n /= 10; } return sum; } // function for finding x static int findX(int n) { // iterate from 1 to n. For every no. // check if its digit sum with it is // equal to n. for (int i = 0; i <= n; i++) if (i + digSum(i) == n) return i; // if no such i found return -1 return -1; } // Driver code public static void Main() { int n = 43; Console.Write("x = " + findX(n)); } } // This code is contributed by vt_m.
PHP
<?php // PHP program to find x such that // dx + igSum(x) is equal to n. // utility function // for digit sum function digSum($n) { $sum = 0; $rem = 0; while ($n) { $rem = $n % 10; $sum += $rem; $n /= 10; } return $sum; } // function for finding x function findX($n) { // iterate from 1 to n. // For every no. // check if its digit // sum with it is // equal to n. for ($i = 0; $i <= $n; $i++) if ($i + digSum($i) == $n) return $i; // if no such i // found return -1 return -1; } // Driver Code $n = 43; echo "x = " , findX($n); // This code is contributed by vt_m. ?>
Javascript
<script> // Javascript program to find x such that x + // digSum(x) is equal to n. // utility function for digit sum function digSum(n) { let sum = 0, rem = 0; while (n>0) { rem = n % 10; sum += rem; n = Math.floor(n / 10); } return sum; } // function for finding x function findX(n) { // iterate from 1 to n. For every no. // check if its digit sum with it is // equal to n. for (let i = 0; i <= n; i++) if (i + digSum(i) == n) return i; // if no such i found return -1 return -1; } // driver program let n = 43; document.write("x = "+findX(n)); </script>
Producción:
x = 35
Este artículo es una contribución de Shivam Pradhan (anuj_charm) . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA