问题描述
  每一本正式出版的图书都有一个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

题解:
这道题很简单,用来复习巩固下字符串和用int操作
方法一直接读取字符串
方法二用Int型读取的

Code:方法一

#include <iostream>
#include <fstream>
#include <string>using namespace std;int main(){
//  fstream cin("a.txt");string s;char seq[10], chknum;int len,weight = 1,sum = 0;cin>>s;len = s.length();for(int i = 0; i < len - 2; ++i){if(s[i] == '-') continue;sum += (s[i] - '0') * (weight++);}if(sum % 11 == 10){chknum = 'X';}else{chknum = sum % 11 + '0';}if(chknum == s[len - 1]) cout<<"Right"<<endl;else{for (int i = 0; i < len - 1; ++i){cout<<s[i];}cout<<chknum<<endl;}return 0;
}

Code:方法二

#include <iostream>
#include <fstream>using namespace std;int main(){
//  fstream cin("a.txt");int n1,n2,n5,sum = 0;char chknum;int seq[10],cur;char c = '-';cin>>n1>>c>>n2>>c>>n5>>c>>chknum;seq[0] = n1;cur = 3;while(n2 > 0){seq[cur--] = n2 % 10;n2 /= 10;}cur = 8;while(n5 > 0){seq[cur--] = n5 % 10;n5 /= 10;}for(int i = 0; i < 9; ++i){sum += seq[i] * (i + 1);}if(sum % 11 == 10 && chknum == 'X'){cout<<"Right"<<endl;return 0;}if(sum % 11 == chknum - '0') cout << "Right" << endl;else{for(int i = 0; i < 9; ++i){cout<<seq[i];if(i == 0) cout << "-";if(i == 3) cout << "-";if(i == 8) cout << "-";}if(sum % 11 == 10) cout << "X";else cout << sum % 11 << endl;}return 0;
}

CCF真题 ISBN号码 题解相关推荐

  1. CCF真题 201312-2 ISBN号码

    目录 1 题目 1.1 问题描述 1.2 输出格式 1.3 样例输入 1.4 样例输出 1.5 样例输入 1.6 样例输出 2 代码 1 题目 1.1 问题描述 每一本正式出版的图书都有一个ISBN号 ...

  2. CCF真题之ISBN号码

    201312-2 问题描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位分隔符,其规定格式如"x-xxx-xxxxx-x",其中符号& ...

  3. C++ 字符串流stringstream(附蓝桥杯2018年第九届真题缩位求和题解)

    一.stringstream介绍 stringstream是 C++ 提供的一个字符串流(stream),,必须包含其头文件: #include <sstream> < sstrea ...

  4. 团体程序设计天梯赛真题(部分题解,持续更新)

    文章目录 天梯赛真题 L1-008 求整数段和(10分) 输入格式: 输出格式: 输入样例: 输出样例: 解题过程: L1-018 大笨钟(10分) 输入格式: 输出格式: 输入样例1: 输出样例1: ...

  5. 数据结构——CCF真题:疲劳度问题

    2017.12.3CCF真题第四题 一.问题: 0.问题描述 小明和小芳出去乡村玩,小明负责开车,小芳来导航. 小芳将可能的道路分为大道和小道.大道比较好走,每走1公里小明会增加1的疲劳度.小道不好走 ...

  6. ccf试题棋局评估c语言,第十三次CCF CSP认证(2018年3月)真题棋局评估 题解

    问题描述 Alice和Bob正在玩井字棋游戏. 井字棋游戏的规则很简单:两人轮流往3*3的棋盘中放棋子,Alice放的是"X",Bob放的是"O",Alice执 ...

  7. CCF真题 工资计算

    测试网址:https://passport.ccf.org.cn/sso/platform 注册后->CSP认证->报名考试->模拟考试 Description 小明的公司每个月给小 ...

  8. 14年12月CCF真题1-门禁系统

    问题描述 涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况.每 位读者有一个编号,每条记录用读者的编号来表示.给出读者的来访记录,请 问每一条记录中的读者是第几次出现. 输入格式 输入的第 ...

  9. 14年12月CCF真题4-最优灌溉

    问题描述 雷雷承包了很多片麦田,为了灌溉这些麦田,雷雷在第一个麦田挖了一口 很深的水井,所有的麦田都从这口井来引水灌溉. 为了灌溉,雷雷需要建立一些水渠,以连接水井和麦田,雷雷也可以利用 部分麦田作为 ...

最新文章

  1. python 读写 csv
  2. Node.js 开发指南笔记
  3. scrapy多个page爬取, post请求, 通过爬到的URL继续发请求爬页面
  4. 当代的设计潮流是什么_12月,潮流咖的出行攻略!
  5. ImportError: cannot import name ‘options‘ from ‘pyecharts‘
  6. 发布订阅之fanout
  7. 关于aop:pointcut的expression配制说明及JoinPoint
  8. HDFS依然是存储的王者
  9. 查看网卡流量:nload
  10. 先进pid控制matlab仿真_PID控制原理 三 (控制系统硬件选择与仿真)
  11. MySQL 复制技术的发展
  12. 区块链游戏《TmoLand明日世界》又叒叕更新了
  13. VOSviewer:高频关键字段共现网络制作入门教程(以PubMed数据为例)
  14. UIFont各种字体
  15. 车辆信息查询api,通过车系名称查询相关信息
  16. 读文万卷025期:使用MRI形态学特征和表观弥散系数预测WHO II/III级胶质瘤分子状态;帕金森病的中脑的定量磁敏感成像
  17. 【Linux】将终端的命令输出保存为txt文本文件
  18. SPI 接口OLED 使用5V 信号驱动可能需要电平转换
  19. java时区时间转换
  20. java.lang.IllegalArgumentException: Address 127.0.0.1:5672:5672 seems to contain an unquoted IPv6

热门文章

  1. 滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(7月29日)...
  2. 告别 Google 网站站长,迎接 Google 搜索中心
  3. 武林c语言,听风一剑
  4. STM32工程模板简单套用教程(Keil MDK)
  5. VMware低版运行高版+破解root口令+静态IP配置
  6. Cortex-A15 Processor 简介
  7. Flutter - flutter_bloc状态管理
  8. Linux系统之部署Rsyslog 日志服务器
  9. 单片机c语言关键字 id,单片机关键字sfr和sbit的理解
  10. java 数组越界_JAVA 数组越界 怎么破