CSP201312-2 ISBN号码

题目传送门


题目分析
  用一个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

发布了172 篇原创文章 · 获赞 81 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_43074474/article/details/104741442