Рубрики

Найти наиболее частую цифру без использования массива / строки

Учитывая целое число, найдите в нем наиболее встречающуюся цифру. Если две или более цифры встречаются одинаковое количество раз, верните старшую из них. Входное целое число задается как переменная типа int, а не как строка или массив. Использование хеша, массива или строки не допускается.

Пример:

Input:  x = 12234
Output: The most frequent digit is 2

Input:  x = 1223377
Output: The most frequent digit is 7

Input:  x = 5
Output: The most frequent digit is 5

Input:  x = 1000
Output: The most frequent digit is 0

Мы настоятельно рекомендуем вам свернуть браузер и попробовать это в первую очередь.
Мы могли бы создать карту размером 10 и сохранить количество всех цифр, но использование любого массива / строки не допускается.

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

C ++

// Находит максимально возможную цифру без использования массива / строки
#include <bits/stdc++.h>

using namespace std;

  
// Простая функция для подсчета вхождений цифры d в x

int countOccurrences(long int x, int d)

{

    int count = 0;  // Инициализируем количество цифр d

    while (x)

    {

        // Увеличиваем счетчик, если текущая цифра такая же как d

        if (x%10 == d)

           count++;

        x = x/10;

    }

    return count;

}

  
// Возвращает максимальное количество цифр в х

int maxOccurring(long int x)

{

   // Обработка отрицательного числа

   if (x < 0)

      x = -x;

  

   int result = 0; // Инициализировать результат, который является цифрой

   int max_count = 1; // Инициализировать счетчик результата

  

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

   for (int d=0; d<=9; d++)

   {

      // Считаем вхождения текущей цифры

      int count = countOccurrences(x, d);

  

      // Обновление max_count и результат при необходимости

      if (count >= max_count)

      {

         max_count = count;

         result = d;

      }

   }

   return result;

}

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

int main()

{

    long int x = 1223355;

    cout << "Max occurring digit is " << maxOccurring(x);

    return 0;

}

Джава

// Находит максимальную встречающуюся цифру
// без использования какого-либо массива / строки

import java.io.*;

  

class GFG 

{

      
// Простая функция для подсчета
// вхождения цифры d в x

static int countOccurrences(int x, 

                            int d)

{

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

    // цифры d

    int count = 0

    while (x > 0)

    {

        // Увеличить счет, если

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

        // так же, как d

        if (x % 10 == d)

        count++;

        x = x / 10;

    }

    return count;

}

  
// Возвращает максимум
// встречающаяся цифра в х

static int maxOccurring( int x)

{

      
// Обработка отрицательного числа

if (x < 0)

    x = -x;

  
// Инициализировать результат
// которая является цифрой

int result = 0

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

int max_count = 1

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

for (int d = 0; d <= 9; d++)

{

    // Подсчет вхождений

    // текущей цифры

    int count = countOccurrences(x, d);

  

    // Обновляем max_count

    // и результат при необходимости

    if (count >= max_count)

    {

        max_count = count;

        result = d;

    }

}

return result;

}

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

public static void main (String[] args) 

{

    int x = 1223355;

    System.out.println("Max occurring digit is " +

                                 maxOccurring(x));

      
}
}

  
// Этот код добавлен
// от akt_mit

python3

# Находит максимальную встречающуюся цифру
# без использования какого-либо массива / строки

  
# Простая функция для подсчета
# вхождения цифры d в x

def countOccurrences(x, d):

    count = 0; # Initialize count

               Количество цифр d

    while (x): 

          

        # Счетчик приращений, если текущий

        цифра # такая же как d

        if (x % 10 == d):

            count += 1

        x = int(x / 10); 

  

    return count; 

  
# Возвращает максимальное значение
цифра в х

def maxOccurring(x):

      

    # Обрабатывать отрицательное число

    if (x < 0):

        x = -x;

      

    result = 0; # Инициализировать результат

                # это цифра

    max_count = 1; # Initialize count

                   № результата

      

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

    for d in range(10):

          

        # Количество вхождений текущей цифры

        count = countOccurrences(x, d);

          

        # Обновите max_count и

        # результат при необходимости

        if (count >= max_count):

            max_count = count;

            result = d;

          

    return result; 

  
Код водителя

x = 1223355

print("Max occurring digit is"

              maxOccurring(x)); 

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

C #

// Находит максимальную встречающуюся цифру
// без использования какого-либо массива / строки

class GFG 

{

      
// Простая функция для подсчета
// вхождения цифры d в x

static int countOccurrences(int x, int d)

{

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

    // цифры d

    int count = 0; 

    while (x > 0)

    {

        // Увеличить счет, если

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

        // так же, как d

        if (x % 10 == d)

        count++;

        x = x / 10;

    }

    return count;

}

  
// Возвращает максимум
// встречающаяся цифра в х

static int maxOccurring( int x)

{

      
// Обработка отрицательного числа

if (x < 0)

    x = -x;

  
// Инициализировать результат
// которая является цифрой

int result = 0; 

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

int max_count = 1; 

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

for (int d = 0; d <= 9; d++)

{

    // Подсчет вхождений

    // текущей цифры

    int count = countOccurrences(x, d);

  

    // Обновляем max_count

    // и результат при необходимости

    if (count >= max_count)

    {

        max_count = count;

        result = d;

    }

}

return result;

}

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

static void Main() 

{

    int x = 1223355;

    System.Console.WriteLine("Max occurring digit is "

                                       maxOccurring(x));

}
}

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

PHP

<?php
// Находит максимальную встречающуюся цифру
// без использования какого-либо массива / строки

  
// Простая функция для подсчета
// вхождения цифры d в x

function countOccurrences($x, $d

    // Инициализируем количество цифр d

    $count = 0; 

    while ($x

    

        // Увеличиваем счетчик, если текущий

        // цифра такая же как d

        if ($x % 10 == $d

        $count++; 

        $x = (int)($x / 10); 

    

    return $count

  
// Возвращает максимальное значение
// цифра в х

function maxOccurring($x


// Обработка отрицательного числа

if ($x < 0) 

    $x = -$x

  

$result = 0; // Инициализировать результат

             // которая является цифрой

$max_count = 1; // Инициализировать счетчик результата

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

for ($d = 0; $d <= 9; $d++) 

    // Подсчет вхождений

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

    $count = countOccurrences($x, $d); 

  

    // Обновляем max_count и результат

    // если нужно

    if ($count >= $max_count

    

        $max_count = $count

        $result = $d

    

return $result

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

$x = 1223355; 

echo "Max occurring digit is "

               maxOccurring($x); 

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


Выход:

Max occurring digit is 5

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

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

Найти наиболее частую цифру без использования массива / строки

0.00 (0%) 0 votes