问题描述 给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。输入格式 输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。 输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。输出格式 输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。样例输入6 10 1 10 20 30 20样例输出10
算法
#include <iostream>
using namespace std;
int x[10010]; // 比范围大一点
int main()
{
int n;
cin >> n; // 一共有n个数
int s;
// 读入n个数
for (int i = 0; i < n; i++)
{
cin >> s;
x[s]++;
}
int res = 1;
for (int i = 2; i <= 10010; i++)
{
if (x[res] < x[i])
{
res = i;
}
}
cout << res << endl;
return 0;
}
CCF 0-2
问题描述
试题编号:
201312-2
试题名称:
ISBN号码
时间限制:
1.0s
内存限制:
256.0MB
问题描述:
问题描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。 识别码的计算方法如下: 首位数字乘以1加上次位数字乘以2……以此类推,用所得的结果mod 11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X。例如ISBN号码0-670-82162-4中的识别码4是这样得到的:对067082162这9个数字,从左至右,分别乘以1,2,…,9,再求和,即0×1+6×2+……+2×9=158,然后取158 mod 11的结果4作为识别码。 编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出“Right”;如果错误,则输出是正确的ISBN号码。输入格式 输入只有一行,是一个字符序列,表示一本书的ISBN号码(保证输入符合ISBN号码的格式要求)。输出格式 输出一行,假如输入的ISBN号码的识别码正确,那么输出“Right”,否则,按照规定的格式,输出正确的ISBN号码(包括分隔符“-”)。样例输入0-670-82162-4样例输出Right样例输入0-670-82162-0样例输出0-670-82162-4
算法描述
#include <iostream>
using namespace std;
int main()
{
string str;
cin >> str;
int sum = 0;
for (int i = 0, j = 1; i < str.size() - 1; i++)
{
if (str[i] != '-')
{
sum += (str[i] - '0') * j;
j++;
}
}
char ch = sum % 11 + '0';
if (sum % 11 == 10)
{
ch = 'X';
}
string res;
if (ch == str.back())
{
res = "Right";
}
else
{
str.back() = ch;
res = str;
}
cout << res << endl;
return 0;
}
#include <iostream>
using namespace std;
const int N = 1010;
int x[1010];
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> x[i];
}
// 操作
int area = 0;
int max = 0;
for (int i = 0; i < n; i++)
{
int left = i;
int right = i;
while (left >= 0 && x[left] >= x[i] )
{
left--;
}
while (right<=n-1 && x[right] >= x[i]){
right++;
}
area = (right-left-1) * x[i];
if(max<area){
max = area;
}
}
cout<<max<<endl;
return 0;
}