Cuente números enteros positivos de dígitos ‘d’ con 0 como dígito

Dado un número d , que representa el número de dígitos de un entero positivo. Encuentre el recuento total de enteros positivos (que consisten exactamente en d dígitos) que tienen al menos un cero en ellos.
Ejemplos: 

Input : d = 1
Output : 0
There's no natural number of 1 digit that
contains a zero.

Input : d = 2
Output : 9
The numbers are, 10, 20, 30, 40, 50, 60, 
                 70, 80 and 90.

Le recomendamos encarecidamente que haga clic aquí y lo practique antes de pasar a la solución.

Una solución simple es atravesar todos los números positivos de d dígitos. Para cada número, recorra sus dígitos y, si hay algún dígito 0, incremente el conteo (similar a esto ).
Las siguientes son algunas observaciones: 

  1. Hay exactamente d dígitos.
  2. El número en el lugar más significativo no puede ser un cero (no se permiten ceros a la izquierda).
  3. Todos los demás lugares, excepto el más significativo, pueden contener cero.

digits

Entonces, considerando los puntos anteriores, encontremos el recuento total de números que tienen d dígitos:
 

We can place any of {1, 2, ... 9} in D1
Hence D1 can be filled in 9 ways.

Apart from D1 all the other places can be  10 ways. 
(we can place 0 as well)
Hence the total numbers having d digits can be given as: 
Total =  9*10d-1

Now, let's find the numbers having d digits, that
don't contain zero at any place. 
In this case, all the places can be filled in 9 ways.
Hence count of such numbers is given by:
Non_Zero = 9d

Now the count of numbers having at least one zero 
can be obtained by subtracting Non_Zero from Total.
Hence Answer would be given by:
9*(10d-1 - 9d-1) 

A continuación se muestra el programa para el mismo. 
 

C++

//C++ program to find the count of positive integer of a
// given number of digits that contain atleast one zero
#include<bits/stdc++.h>
using namespace std;
 
// Returns count of 'd' digit integers have 0 as a digit
int findCount(int d)
{
    return 9*(pow(10,d-1) - pow(9,d-1));
}
 
// Driver Code
int main()
{
    int d = 1;
    cout << findCount(d) << endl;
 
    d = 2;
    cout << findCount(d) << endl;
 
    d = 4;
    cout << findCount(d) << endl;
    return 0;
}

Java

// Java program to find the count
// of positive integer of a
// given number of digits
// that contain atleast one zero
import java.io.*;
 
class GFG {
     
    // Returns count of 'd' digit
    // integers have 0 as a digit
    static int findCount(int d)
    {
        return 9 * ((int)(Math.pow(10, d - 1))
                 - (int)(Math.pow(9, d - 1)));
    }
     
    // Driver Code
    public static void main(String args[])
    {
        int d = 1;
        System.out.println(findCount(d));
         
        d = 2;
        System.out.println(findCount(d));
         
        d = 4;
        System.out.println(findCount(d));
         
    }
}
 
// This code is contributed by Nikita Tiwari.

Python3

# Python 3 program to find the
# count of positive integer of a
# given number of digits that
# contain atleast one zero
import math
 
# Returns count of 'd' digit
# integers have 0 as a digit
def findCount(d) :
    return 9*((int)(math.pow(10,d-1)) - (int)(math.pow(9,d-1)));
 
 
# Driver Code
d = 1
print(findCount(d))
     
d = 2
print(findCount(d))
 
d = 4
print(findCount(d))
 
 
# This code is contributed by Nikita Tiwari.

C#

// C# program to find the count
// of positive integer of a
// given number of digits
// that contain atleast one zero.
using System;
 
class GFG {
     
    // Returns count of 'd' digit
    // integers have 0 as a digit
    static int findCount(int d)
    {
        return 9 * ((int)(Math.Pow(10, d - 1))
                 - (int)(Math.Pow(9, d - 1)));
    }
     
    // Driver Code
    public static void Main()
    {
        int d = 1;
        Console.WriteLine(findCount(d));
         
        d = 2;
        Console.WriteLine(findCount(d));
         
        d = 4;
        Console.WriteLine(findCount(d));
         
    }
}
 
// This code is contributed by nitin mittal.

PHP

<?php
// PHP program to find the count
// of positive integer of a given
// number of digits that contain
// atleast one zero
 
// Returns count of 'd' digit
// integers have 0 as a digit
function findCount($d)
{
    return 9 * (pow(10, $d - 1) -
                pow(9, $d - 1));
}
 
// Driver Code
{
    $d = 1;
    echo findCount($d),"\n";
 
    $d = 2;
    echo findCount($d),"\n";
 
    $d = 4;
    echo findCount($d), "\n";
    return 0;
}
 
// This code is contributed by nitin mittal
?>

Javascript

<script>
 
// JavaScript program to find the count
// of positive integer of a
// given number of digits
// that contain atleast one zero
 
    // Returns count of 'd' digit
    // integers have 0 as a digit
    function findCount(d)
    {
        return 9 * ((Math.pow(10, d - 1))
                 - (Math.pow(9, d - 1)));
    }
 
// Driver Code
 
        let d = 1;
        document.write(findCount(d) + "<br/>");
           
        d = 2;
        document.write(findCount(d) + "<br/>");
           
        d = 4;
        document.write(findCount(d) + "<br/>");   
     
    // This code is contributed by target_2.
</script>

Producción : 

0
9
2439

Complejidad de tiempo : O (logn) 

Espacio auxiliar: O(1)
Este artículo es una contribución de Ashutosh Kumar . 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *