这是整个代码。它需要一个整数x并返回整数x中最常见的数字,同样在tie的情况下它返回更大的值。
#include <iostream>
using namespace std;
int max_frequency(int x)
{
int a[] = {0,0,0,0,0,0,0,0,0,0};
int temp, max;
while(x > 0)
{
temp = x%10;
x=x/10;
a[temp]++;
}
max = 0;
for(int i = 1; i < 10; i++)
{
if(a[i] >= a[max])
{
max = i;
}
}
return max;
}
int main()
{
int x;
cout << "Enter the integer: "<< endl;
cin >> x;
cout << max_frequency(x) << endl;
return 0;
}
我很困惑的部分:
int max_frequency(int x)
{
int a[] = {0,0,0,0,0,0,0,0,0,0};
int temp, max;
while(x > 0)
{
temp = x%10;
x=x/10;
a[temp]++;
}
max = 0;
我知道0的数组用作计数器,我不明白的是分配给变量temp的内容,以及为什么。我有一些帮助编写这段代码,但它没有清楚地向我解释这里发生了什么。如果有人不介意解释这件作品,我会非常感激。谢谢。
答案 0 :(得分:1)
%
是模运算符,意味着x%y
等于x除以y的余数。在这种情况下,我们可以看到x%10
返回x的最右边数字,对吧?现在我们可以计算一个数字的数字