Write a C function called maxfrequency which takes as argume
Write a C++ function called max_frequency which takes as arguments, integer x and returns the frequency of the digits in x, using a single one dimensional array. In case of a tie, the function should return the largest digit. E.g. for the number 3136569, both 3 and 6 appear twice but the function returns 6.
Solution
#include <iostream>
using namespace std;
int max_frequency(int n)
{
//creating an array to calculate the frequency of each digit in a number.
//size of array is 10, a[i] represents the frequency of digit i. Initiazalising all of them to 0.
int a[] = {0,0,0,0,0,0,0,0,0,0};
int tmp,max;
//Looping through all the digits in the number.
while(n>0)
{
//tmp will hold each of the number in each iteration
tmp = n%10;
//Removing the last digit
n=n/10;
a[tmp]++;
}
max=0;
for(int i=1;i<10;i++)
{
if(a[i]>=a[max])
{
max=i;
}
}
return max;
}
int main()
{
cout<<max_frequency(3136569)<<endl;
return 0;
}
