Рубрики

Подсчитать числа, имеющие цифру 0

Посчитайте, сколько целых чисел от 1 до N содержит 0 в виде цифры.

Примеры:

Input:  n = 9
Output: 0

Input: n = 107
Output: 17
The numbers having 0 are 10, 20,..90, 100, 101..107

Input: n = 155
Output: 24
The numbers having 0 are 10, 20,..90, 100, 101..110,
120, ..150.

Идея состоит в том, чтобы пройти все числа от 1 до n. Для каждого пройденного числа просмотрите его цифры, если любая цифра равна 0, увеличить счетчик. Ниже приведена реализация вышеуказанной идеи:

C ++

// C ++ программа для подсчета чисел от 1 до n с
// 0 как цифра
#include<bits/stdc++.h>

using namespace std;

  
// Возвращает 1, если x имеет 0, иначе 0

int has0(int x)

{

    // Пройти через все цифры

    // х, чтобы проверить, имеет ли он 0.

    while (x)

    {

        // Если текущая цифра равна 0, вернуть true

        if (x % 10 == 0)

          return 1;

  

        x /= 10;

    }

  

    return 0;

}

  
// Возвращает количество чисел от 1 до n с 0 в качестве цифры

int getCount(int n)

{

    // Инициализировать количество чисел, имеющих цифру 0

    int count = 0;

  

    // Обход всех номеров и каждого номера

    // проверяем, имеет ли он 0.

    for (int i=1; i<=n; i++)

        count += has0(i);

  

    return count;

}

  
// Драйвер программы

int main()

{

    int n = 107;

    cout << "Count of numbers from 1" << " to "

         << n << " is " << getCount(n);

}

Джава

// Java-программа для подсчета чисел
// от 1 до n с 0 в качестве цифры

import java.io.*;

  

class GFG {

      

    // Возвращает 1, если x имеет 0, иначе 0

    static int has0(int x)

    {

        // Пройти через все цифры

        // из x, чтобы проверить, имеет ли он 0.

        while (x != 0)

        {

            // Если текущая цифра равна 0,

            // вернуть true

            if (x % 10 == 0)

            return 1;

      

            x /= 10;

        }

      

        return 0;

    }

      

    // Возвращает количество чисел

    // от 1 до n с 0 в качестве цифры

    static int getCount(int n)

    {

        // Инициализировать количество

        // числа с цифрой 0

        int count = 0;

      

        // Обход всех номеров

        // и для каждого номера

        // проверяем, имеет ли он 0.

        for (int i = 1; i <= n; i++)

            count += has0(i);

      

        return count;

    }

  

      
// Драйвер программы

public static void main(String args[])

{

  int n = 107;

  System.out.println("Count of numbers from 1"

            + " to " +n + " is " + getCount(n));

}
}

  
// Этот код предоставлен Никитой Тивари.

Python 3

# Python 3 программа для подсчета чисел
# от 1 до n с 0 в качестве цифры

  
# Возвращает 1, если x имеет 0, иначе 0

def has0(x) :

      

    # Пройдите через все цифры

    Количество х, чтобы проверить, есть ли у него 0.

    while (x != 0) :

          

        # Если текущая цифра равна 0,

        # верните true

        if (x % 10 == 0) :

            return 1

  

        x = x // 10

      

    return 0

  

  
# Возвращает количество чисел
# от 1 до n с 0 в качестве цифры

def getCount(n) :

      

    # Инициализировать количество чисел

    # с 0 в качестве цифры.

    count = 0

  

    # Обходит все номера

    # и для каждой проверки номера

    # если оно имеет 0.

    for i in range(1, n + 1) :

        count = count + has0(i)

  

    return count

  

  
# Драйверная программа

n = 107

print("Count of numbers from 1", " to ",

                n , " is " , getCount(n))

  

  
# Этот код предоставлен Никитой Тивари.

C #

// C # программа для подсчета чисел
// от 1 до n с 0 в качестве цифры

using System;

  

class GFG

{

      

    // Возвращает 1, если x имеет 0, иначе 0

    static int has0(int x)

    {

        // Пройти через все цифры

        // из x, чтобы проверить, имеет ли он 0.

        while (x != 0)

        {

            // Если текущая цифра равна 0,

            // вернуть true

            if (x % 10 == 0)

            return 1;

      

            x /= 10;

        }

      

        return 0;

    }

      

    // Возвращает количество чисел

    // от 1 до n с 0 в качестве цифры

    static int getCount(int n)

    {

        // Инициализировать количество

        // числа с цифрой 0

        int count = 0;

      

        // Обход всех номеров

        // и для каждого номера

        // проверяем, имеет ли он 0.

        for (int i = 1; i <= n; i++)

            count += has0(i);

      

        return count;

    }

  

      
// Код драйвера

public static void Main()

{

      

    int n = 107;

    Console.WriteLine("Count of numbers from 1"

                        + " to " +n + " is " + getCount(n));

}
}

  
// Этот код предоставлен Sam007

Выход:

Count of numbers from 1 to 107 is 17

Обратитесь к сообщению ниже для оптимизированного решения.

Подсчитать числа, имеющие цифру 0

Эта статья предоставлена Dheeraj Gupta. Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

Рекомендуемые посты:

Подсчитать числа, имеющие цифру 0

0.00 (0%) 0 votes