给定一个整数,找出其中出现次数最多的数字。如果两个或多个数字出现相同的次数,则返回它们中的最高者。输入整数作为 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++
// Finds maximum occurring digit without using any array/string
#include
using namespace std;
// Simple function to count occurrences of digit d in x
int countOccurrences(long int x, int d)
{
int count = 0; // Initialize count of digit d
while (x)
{
// Increment count if current digit is same as d
if (x%10 == d)
count++;
x = x/10;
}
return count;
}
// Returns the max occurring digit in x
int maxOccurring(long int x)
{
// Handle negative number
if (x < 0)
x = -x;
int result = 0; // Initialize result which is a digit
int max_count = 1; // Initialize count of result
// Traverse through all digits
for (int d=0; d<=9; d++)
{
// Count occurrences of current digit
int count = countOccurrences(x, d);
// Update max_count and result if needed
if (count >= max_count)
{
max_count = count;
result = d;
}
}
return result;
}
// Driver program
int main()
{
long int x = 1223355;
cout << "Max occurring digit is " << maxOccurring(x);
return 0;
}
Java
// Finds maximum occurring digit
// without using any array/string
import java.io.*;
class GFG
{
// Simple function to count
// occurrences of digit d in x
static int countOccurrences(int x,
int d)
{
// Initialize count
// of digit d
int count = 0;
while (x > 0)
{
// Increment count if
// current digit is
// same as d
if (x % 10 == d)
count++;
x = x / 10;
}
return count;
}
// Returns the max
// occurring digit in x
static int maxOccurring( int x)
{
// Handle negative number
if (x < 0)
x = -x;
// Initialize result
// which is a digit
int result = 0;
// Initialize count
// of result
int max_count = 1;
// Traverse through
// all digits
for (int d = 0; d <= 9; d++)
{
// Count occurrences
// of current digit
int count = countOccurrences(x, d);
// Update max_count
// and result if needed
if (count >= max_count)
{
max_count = count;
result = d;
}
}
return result;
}
// Driver Code
public static void main (String[] args)
{
int x = 1223355;
System.out.println("Max occurring digit is " +
maxOccurring(x));
}
}
// This code is contributed
// by akt_mit
Python3
# Finds maximum occurring digit
# without using any array/string
# Simple function to count
# occurrences of digit d in x
def countOccurrences(x, d):
count = 0; # Initialize count
# of digit d
while (x):
# Increment count if current
# digit is same as d
if (x % 10 == d):
count += 1;
x = int(x / 10);
return count;
# Returns the max occurring
# digit in x
def maxOccurring(x):
# Handle negative number
if (x < 0):
x = -x;
result = 0; # Initialize result
# which is a digit
max_count = 1; # Initialize count
# of result
# Traverse through all digits
for d in range(10):
# Count occurrences of current digit
count = countOccurrences(x, d);
# Update max_count and
# result if needed
if (count >= max_count):
max_count = count;
result = d;
return result;
# Driver Code
x = 1223355;
print("Max occurring digit is",
maxOccurring(x));
# This code is contributed by mits.
C#
// Finds maximum occurring digit
// without using any array/string
class GFG
{
// Simple function to count
// occurrences of digit d in x
static int countOccurrences(int x, int d)
{
// Initialize count
// of digit d
int count = 0;
while (x > 0)
{
// Increment count if
// current digit is
// same as d
if (x % 10 == d)
count++;
x = x / 10;
}
return count;
}
// Returns the max
// occurring digit in x
static int maxOccurring( int x)
{
// Handle negative number
if (x < 0)
x = -x;
// Initialize result
// which is a digit
int result = 0;
// Initialize count
// of result
int max_count = 1;
// Traverse through
// all digits
for (int d = 0; d <= 9; d++)
{
// Count occurrences
// of current digit
int count = countOccurrences(x, d);
// Update max_count
// and result if needed
if (count >= max_count)
{
max_count = count;
result = d;
}
}
return result;
}
// Driver Code
static void Main()
{
int x = 1223355;
System.Console.WriteLine("Max occurring digit is " +
maxOccurring(x));
}
}
// This code is contributed by mits
PHP
= $max_count)
{
$max_count = $count;
$result = $d;
}
}
return $result;
}
// Driver Code
$x = 1223355;
echo "Max occurring digit is " .
maxOccurring($x);
// This code is contributed by mits
?>
Javascript
输出:
Max occurring digit is 5
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。