Dado N, el número de dígitos de un número entero que es mayor o igual a 2 y un peso W. La tarea es encontrar el conteo de números enteros que tienen N dígitos y peso W.
Nota : El peso se define como la diferencia entre el dígitos consecutivos de un número entero.
Ejemplos :
Input : N = 2, W = 3 Output : 6 Input : N = 2, W = 4 Output : 5
En el ejemplo anterior, el total de enteros posibles de 2 dígitos con peso igual a 3 será 6. Al igual que el número 14 tiene peso 3 (4-1) y 25, 36, 47, 58, 69 tiene peso 3. Si vemos con cuidado, encontraremos la lógica de que si incrementamos el peso como 5 de un número de 2 dígitos, entonces el total de esos números posibles será 5. Con el peso 6 de un número de 2 dígitos, el total de números posibles será 4 y luego 3 y así sucesivamente. Además, si aumentamos el número de dígitos. Digamos, n igual a 3 con peso 3, entonces los números totales posibles serán 60 y 600 para n igual a 4 con peso 3 y así sucesivamente.
Número de dígitos | Peso —> Total de tales números posibles
2|2 —> 7 | 2|3 —> 6 | 2|4 —> 5 | 2|5 —> 4 | 2|6 —> 3 | 2|7 —> 2 | 2|8 —> 1 |
3|2 —> 70 | 3|3 —> 60 | 3|4 —> 50 | 3|5 —> 40 | 3|6 —> 30 | 3|7 —> 20 | 3|8 —> 10 |
4|2 —>700 | 4|3 —>600 | 4|4 —>500 | 4|5 —>400 | 4|6 —>300 | 4|7 —>200 | 4|8 —>100 |
Como puede ver en la tabla anterior, con un aumento en la cantidad de dígitos, la cantidad de números con peso ‘w’ sigue un patrón, donde cambia en el múltiplo de 10^(n-2), donde ‘ n’ es el número de dígitos.
A continuación se muestra el algoritmo paso a paso para resolver este problema:
- Compruebe si el Peso (W) dado es Positivo o Negativo.
- Reste Peso (W) de 9 si es positivo.
- Agregue Peso a 10 si es negativo y luego actualice el nuevo peso.
- Para un entero de n dígitos, multiplique 10^(n-2) con este peso actualizado.
- Esto nos dará el número de enteros que satisfacen este peso.
A continuación se muestra la implementación del enfoque anterior:
C++
// CPP program to find total possible numbers // with n digits and weight w #include <iostream> #include<cmath> using namespace std; // Function to find total possible numbers // with n digits and weight w int findNumbers(int n, int w) { int x = 0, sum = 0; // When Weight of an integer is Positive if (w >= 0 && w <= 8) { // Subtract the weight from 9 x = 9 - w; } // When weight of an integer is negative else if (w >= -9 && w <= -1) { // add the weight to 10 to make it positive x = 10 + w; } sum = pow(10, n - 2); sum = (x * sum); return sum; } // Driver code int main() { int n, w; // number of digits in an // integer and w as weight n = 3, w = 4; // print the total possible numbers // with n digits and weight w cout << findNumbers(n, w);; return 0; }
Java
// Java program to find total // possible numbers with n // digits and weight w class GFG { // Function to find total // possible numbers with n // digits and weight w static int findNumbers(int n, int w) { int x = 0, sum = 0; // When Weight of an // integer is Positive if (w >= 0 && w <= 8) { // Subtract the weight from 9 x = 9 - w; } // When weight of an // integer is negative else if (w >= -9 && w <= -1) { // add the weight to 10 // to make it positive x = 10 + w; } sum = (int)Math.pow(10, n - 2); sum = (x * sum); return sum; } // Driver code public static void main(String args[]) { int n, w; // number of digits in an // integer and w as weight n = 3; w = 4; // print the total possible numbers // with n digits and weight w System.out.println(findNumbers(n, w)); } } // This code is contributed // by ankita_saini
Python3
# Python3 program to find total possible # numbers with n digits and weight w # Function to find total possible # numbers with n digits and weight w def findNumbers(n, w): x = 0; sum = 0; # When Weight of an integer # is Positive if (w >= 0 and w <= 8): # Subtract the weight from 9 x = 9 - w; # When weight of an integer # is negative elif (w >= -9 and w <= -1): # add the weight to 10 to # make it positive x = 10 + w; sum = pow(10, n - 2); sum = (x * sum); return sum; # Driver code # number of digits in an # integer and w as weight n = 3; w = 4; # print the total possible numbers # with n digits and weight w print(findNumbers(n, w)); # This code is contributed # by mits
C#
// C# program to find total possible // numbers with n digits and weight w using System; class GFG { // Function to find total possible // numbers with n digits and weight w static int findNumbers(int n, int w) { int x = 0, sum = 0; // When Weight of an integer // is Positive if (w >= 0 && w <= 8) { // Subtract the weight from 9 x = 9 - w; } // When weight of an // integer is negative else if (w >= -9 && w <= -1) { // add the weight to 10 // to make it positive x = 10 + w; } sum = (int)Math.Pow(10, n - 2); sum = (x * sum); return sum; } // Driver code static public void Main () { int n, w; // number of digits in an // integer and w as weight n = 3; w = 4; // print the total possible numbers // with n digits and weight w Console.WriteLine(findNumbers(n, w)); } } // This code is contributed by jit_t
PHP
<?php // PHP program to find total possible // numbers with n digits and weight w // Function to find total possible // numbers with n digits and weight w function findNumbers($n, $w) { $x = 0; $sum = 0; // When Weight of an integer // is Positive if ($w >= 0 && $w <= 8) { // Subtract the weight from 9 $x = 9 - $w; } // When weight of an integer // is negative else if ($w >= -9 && $w <= -1) { // add the weight to 10 to // make it positive $x = 10 + $w; } $sum = pow(10, $n - 2); $sum = ($x * $sum); return $sum; } // Driver code // number of digits in an // integer and w as weight $n = 3; $w = 4; // print the total possible numbers // with n digits and weight w echo findNumbers($n, $w); // This code is contributed // by Akanksha Rai
Javascript
<script> // Javascript program to find total possible // numbers with n digits and weight w // Function to find total possible // numbers with n digits and weight w function findNumbers(n, w) { let x = 0, sum = 0; // When Weight of an integer // is Positive if (w >= 0 && w <= 8) { // Subtract the weight from 9 x = 9 - w; } // When weight of an // integer is negative else if (w >= -9 && w <= -1) { // add the weight to 10 // to make it positive x = 10 + w; } sum = Math.pow(10, n - 2); sum = (x * sum); return sum; } let n, w; // number of digits in an // integer and w as weight n = 3; w = 4; // print the total possible numbers // with n digits and weight w document.write(findNumbers(n, w)); </script>
50
Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por AmanSrivastava1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA