Рубрики

Проверьте, не меньше ли частота каждой цифры

Учитывая целое число n, задача состоит в том, чтобы проверить, является ли частота каждой цифры числа меньше или равна самой цифре.

Примеры:

Input : 51241
Output : False

Input : 1425243
Output : True

Наивный подход: начните с 0 и посчитайте частоту для каждой цифры до 9, если в любом месте частота больше, чем значение цифры, затем верните false, в противном случае верните true.

C ++

// Программа на C ++ для проверки числа
#include<bits/stdc++.h>

using namespace std;

  
// Функция для проверки номера
// частота цифры меньше чем
// цифра сама или нет)

bool validate(long long int n)

{

    for (int i=0; i<10; i++)

    {

        long long int temp = n; 

        int count = 0;

        while (temp)

        {

            // Если текущая цифра temp

            // так же, как я

            if (temp % 10 == i)

                count++;

  

            // если частота больше чем

            // цифра, возвращаем ложь

            if (count > i)

                return false;

  

            temp /= 10;

        }

    }

    return true;

}

  
// драйверная программа

int main()

{

    long long int n = 1552793;

    if (validate(n))

        cout << "True";

    else

        cout << "False";

    return 0;

Джава

// Java-программа для проверки числа

import java .io.*;

  

public class GFG {

  
// Функция для проверки номера
// частота цифры меньше чем
// цифра сама или нет)

static boolean validate(long n)

{

    for (int i = 0; i < 10; i++)

    {

        long temp = n; 

        int count = 0;

        while (temp > 0)

        {

            // Если текущая цифра

            // температура такая же как у меня

            if (temp % 10 == i)

                count++;

  

            // если частота больше чем

            // цифра, возвращаем ложь

            if (count > i)

                return false;

  

            temp /= 10;

        }

    }

    return true;

}

  

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

    static public void main (String[] args)

    {

            long n = 1552793;

        if (validate(n))

            System.out.println("True");

        else

            System.out.println("False");

    }

}

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

python3

# Python3 программа для проверки номера

  
# Функция для проверки номера (Проверьте, если
# частота цифры меньше чем
# цифра сама или нет)

def validate(n):

  

    for i in range(10):

        temp = n; 

        count = 0;

        while (temp):

              

            # Если текущая цифра временного

            # так же, как я

            if (temp % 10 == i):

                count+=1;

  

            # если частота больше чем

            # разрядное значение, вернуть false

            if (count > i):

                return -1;

  

            temp //= 10;

  

    return 1;

  
Код водителя

n = 1552793;

geek = "True" if validate(n) else "False";

print(geek);

  
# Этот код предоставлен mits

C #

// C # программа для проверки номера

using System;

  

public class GFG {

  
// Функция для проверки номера
// частота цифры меньше чем
// цифра сама или нет)

static bool validate(long n)

{

    for (int i = 0; i < 10; i++)

    {

        long temp = n; 

        int count = 0;

        while (temp > 0)

        {

            // Если текущая цифра

            // температура такая же как у меня

            if (temp % 10 == i)

                count++;

  

            // если частота больше чем

            // цифра, возвращаем ложь

            if (count > i)

                return false;

  

            temp /= 10;

        }

    }

    return true;

}

  

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

    static public void Main(String[] args)

    {

            long n = 1552793;

        if (validate(n))

            Console.WriteLine("True");

        else

            Console.WriteLine("False");

    }

}

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

PHP

<?php
// PHP программа для проверки числа

  
// Функция для проверки номера
// (Проверьте, если частота
// цифра меньше чем
// цифра сама или нет)

function validate($n)

{

    for ($i = 0; $i < 10; $i++)

    {

        $temp = $n

        $count = 0;

        while ($temp)

        {

              

            // Если текущая цифра

            // темп такой же

            // как и я

            if ($temp % 10 == $i)

                $count++;

  

            // если частота

            // больше цифры

            // значение, вернуть ложь

            if ($count > $i)

                return -1;

  

            $temp /= 10;

        }

    }

    return 1;

}

  

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

    $n = 1552793;

    $geek = validate($n) ?"True" :"False";

    echo($geek);

  
// Этот код предоставлен Ajit
?>


Выход:

True

Эффективный подход: хранить частоту каждой цифры и, если в любом месте частота больше значения цифры, вернуть false, в противном случае вернуть true.

C ++

// Программа на C ++ для проверки числа
#include<bits/stdc++.h>

using namespace std;

  
// Функция для проверки номера
// частота цифры меньше чем
// цифра сама или нет)

bool validate(long long int n)

{

    int count[10] = {0};  

    while (n)

    {

        // вычисляем частоту каждой цифры

        int r = n % 10;

  

        // Если count уже r, то

        // увеличение его значения сделает недействительным,

        // следовательно, мы возвращаем false.

        if (count[r] == r)

           return false;  

  

        count[r]++;

        n /= 10;

    }

  

    return true;

}

  
// драйверная программа

int main()

{

    long long int n = 1552793;

    if (validate(n))

        cout << "True";

    else

        cout << "False";

    return 0;

Джава

// Java-программа для
// проверяем число

import java.io.*;

  

class GFG 

{

      
// Функция для проверки
// число (Проверить частоту
// цифры меньше чем
// сама цифра или нет)

static boolean validate(long n)

{

    int count[] = new int[10] ; 

    while (n > 0)

    {

        // рассчитать частоту

        // каждой цифры

        int r = (int)n % 10;

  

        // Если число уже r,

        // затем увеличиваем его

        // сделает недействительным,

        // следовательно, мы возвращаем false.

        if (count[r] == r)

        return false

  

        count[r]++;

        n /= 10;

    }

  

    return true;

}

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

public static void main (String[] args)

{

    long n = 1552793;

    if (validate(n))

        System.out.println("True");

    else

        System.out.println("False");

}
}

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

python3

# Программа Python3 для проверки числа

import math as mt

  
# Функция для проверки номера (Проверьте, если
# частота цифры меньше чем
# цифра сама или нет)

def validate(n):

  

    count = [0 for i in range(10)] 

    while (n > 0):

      

        # рассчитать частоту каждой цифры

        r = n % 10

  

        # Если число уже r, то

        # увеличение его значения сделает недействительным,

        # следовательно мы возвращаем false.

        if (count[r] == r):

            return False

  

        count[r] += 1

        n = n // 10

      

    return True

  
Код водителя

n = 1552793

if (validate(n)):

    print("True")

else:

    print("False")

  
# Этот код предоставлен
# Мохит Кумар 29

C #

// AC # программа для проверки номера

using System;

  

class GFG

{
// Функция для проверки номера
// (Проверить, если частота цифры
// меньше самой цифры или нет)

static bool validate(long n) 

    int []count = new int[10] ; 

    while (n > 0) 

    

        // рассчитать частоту

        // каждой цифры

        int r = (int)n % 10; 

  

        // Если count уже r, то

        // увеличение его значения сделает недействительным,

        // следовательно, мы возвращаем false.

        if (count[r] == r) 

        return false

  

        count[r]++; 

        n /= 10; 

    

  

    return true

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

static public void Main ()

{

    long n = 1552793; 

    if (validate(n)) 

        Console.WriteLine("True"); 

    else

        Console.WriteLine("False"); 


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

PHP

<?php
// PHP-программа для проверки числа

  
// Функция для проверки номера
// частота цифры меньше чем
// цифра сама или нет)

function validate($n)

{

    $count=array(10);

    while ($n)

    {

        // вычисляем частоту каждой цифры

        $r = $n % 10;

  

        // Если count уже r, то

        // увеличение его значения сделает недействительным,

        // следовательно, мы возвращаем false.

        if (($count[$r] == $r))

        {

            return false; 

        }

  

        $count[$r] = $count[$r] + 1;

        $n = $n / 10;

    }

  

    return true;

}

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

    $n = 1552793;

    $geek = validate($n) ?"True" :"False";

    echo($geek);

?>


Выход:

True

Эта статья предоставлена Шивам Прадхан (anuj_charm) . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

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

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

Проверьте, не меньше ли частота каждой цифры

0.00 (0%) 0 votes