题目分析
用一个string
类型的变量isbn
来接收输入的ISBN
号码,按照题目要求将前9个数字乘以相应的系数再累加到变量sum
中。对sum
模11之后,就可以判断识别码是否正确了。若sum
等于10,且识别码是X
,那么应该输出Right
;若识别码不是X
,则说明识别码不正确,此时应该输出正确的ISBN
号码。若sum
不等于10,且sum
和识别码相等,则应该输出Right
;若sum
和识别码不相等,则说明识别码不正确,此时应该输出正确的ISBN
号码。
源代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
string isbn; //输入的ISBN码
int sum = 0; //求识别码时的累加和
cin >> isbn;
for (int i = 0, j = 1; i < 11; i++)
if (isbn[i] != '-')
sum += (isbn[i] - '0') * j++;
sum %= 11;
char id = isbn[12];//识别码
isbn.erase(12);//将最后一位删除掉
if (sum == 10) {
if (id == 'X')
cout << "Right";
else
cout <<isbn<< 'X';
}
else {//sum的值为0到9之间的整数
if (id - '0' == sum)
cout << "Right";
else
cout << isbn << sum;
}
}
//0-670-82162-4
题目
问题描述
给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。
输入格式
输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。
输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。
输出格式
输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。
样例输入
6
10 1 10 20 30 20
样例输出
10