29:ISBN号码

总时间限制: 
1000ms

内存限制: 
65536kB
描述

每一本正式出版的图书都有一个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号码(包括分隔符“-”)。
样例输入
  1. 样例 #1:
  2. 0-670-82162-4
  3.  
  4. 样例 #2:
  5. 0-670-82162-0
样例输出
  1. 样例 #1:
  2. Right
  3.  
  4. 样例 #2:
  5. 0-670-82162-4
来源
NOIP2008复赛 普及组 第一题
    思路:
          水题大模拟;
        来,上代码:
  1. #include<cstdio>
  2. #include<string>
  3. #include<cstring>
  4. #include<iostream>
  5. #include<algorithm>
  6.  
  7. using namespace std;
  8.  
  9. int num[],now=,len,cur_1=;
  10.  
  11. char word[];
  12.  
  13. int main()
  14. {
  15. gets(word);
  16. len=strlen(word);
  17. for(int i=;i<len;i++)
  18. {
  19. if(now==) break;
  20. if(word[i]>=''&&word[i]<='')
  21. {
  22. num[++now]=word[i]-'';
  23. word[i]-='';
  24. }
  25. }
  26. for(int i=;i<=;i++)
  27. {
  28. num[i]=num[i]*i+num[i-];
  29. }
  30. if(word[]=='X') cur_1=;
  31. else cur_1=word[]-'';
  32. if(num[]%==cur_1) printf("Right\n");
  33. else
  34. {
  35. int cur_2=;
  36. for(int i=;i<len;i++)
  37. {
  38. if(cur_2==) break;
  39. if(word[i]>=&&word[i]<=)
  40. {
  41. word[i]+='';
  42. cur_2++;
  43. }
  44. putchar(word[i]);
  45. }
  46. putchar('-');
  47. if(num[]%==) printf("X\n");
  48. else printf("%d\n",num[]%);
  49. }
  50. return ;
  51. }

AC日记——ISBN号码 openjudge 1.7 29的更多相关文章

  1. AC日记——紧急措施 openjudge 1.7 22

    22:紧急措施 总时间限制:  1000ms 内存限制:  65536kB 描述 近日,一些热门网站遭受黑客入侵,这些网站的账号.密码及email的数据惨遭泄露.你在这些网站上注册若干账号(使用的用户 ...

  2. AC日记——幸运号码 51nod 1043

    幸运号码 思路: 传说中的数位dp: 不难发现,n(n<1000) ,那么,n个数的最大和为9*1000=9000: 对于9000*1000的时间范围,我们可以用dp来解决: dp[i][j], ...

  3. AC日记——数字统计 openjudge 1.5 41

    41:数字统计 总时间限制:  1000ms 内存限制:  65536kB 描述 请统计某个给定范围[L, R]的所有整数中,数字2出现的次数. 比如给定范围[2, 22],数字2在数2中出现了1次, ...

  4. AC日记——阶乘和 openjudge 1.6 15

    15:阶乘和 总时间限制:  1000ms 内存限制:  65536kB 描述 用高精度计算出S=1!+2!+3!+…+n!(n≤50) 其中“!”表示阶乘,例如:5!=5*4*3*2*1. 输入正整 ...

  5. AC日记——行程长度编码 openjudge 1.7 32

    32:行程长度编码 总时间限制:  1000ms 内存限制:  65536kB 描述 在数据压缩中,一个常用的途径是行程长度压缩.对于一个待压缩的字符串而言,我们可以依次记录每个字符及重复的次数.这种 ...

  6. AC日记——字符环 openjudge 1.7 30

    30:字符环 总时间限制:  1000ms 内存限制:  65536kB 描述 有两个由字符构成的环.请写一个程序,计算这两个字符环上最长连续公共字符串的长度.例如,字符串“ABCEFAGADEGKA ...

  7. AC日记——整理药名 openjudge 1.7 15

    15:整理药名 总时间限制:  1000ms 内存限制:  65536kB 描述 医生在书写药品名的时候经常不注意大小写,格式比较混乱.现要求你写一个程序将医生书写混乱的药品名整理成统一规范的格式,即 ...

  8. AC日记——潜伏着 openjudge 1.7 11

    11:潜伏者 总时间限制:  1000ms 内存限制:  65536kB 描述 R国和S国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动. 历经艰险后,潜伏于S国的R国间谍小C终于摸清了S国军 ...

  9. AC日记——简单密码 openjudge 1.7 10

    10:简单密码 总时间限制:  1000ms 内存限制:  65536kB 描述 Julius Caesar曾经使用过一种很简单的密码.对于明文中的每个字符,将它用它字母表中后5位对应的字符来代替,这 ...

随机推荐

  1. CSS代码记录

    1. 内容横向滚动的代码 .ul { display: box; display: -webkit-box; width: 250px; background: yellow; overflow-y: ...

  2. strurts2入门

    MVC :struts2是一个经典开源的mvc框架.主要负责控制器(Controller)   处理请求特点: 核心控制器:  +Actions; 与ServletAPI解耦合: 非单例,线程安全. ...

  3. 关于Canvas模糊的问题

    前言:当我在几个多月前,第一次在移动设备上使用canvas绘制内容的时候,我惊然地发现我绘制的图片以及文字居然都是模糊的!我的内心几乎是崩溃的,因为那是我第一个使用canvas的项目,是一个基于微信端 ...

  4. JavaScript学习12 JS中定义对象的几种方式

    JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...

  5. umeng 渠道统计ios

    1. 使用前提:需要在工程中添加依赖框架:AdSupport.framework 和 Security.framework 2.在AppDelegate.m文件中的-(BOOL)application ...

  6. Ida动态修改android程序的内存数据和寄存器数值,绕过so文件的判断语句

    我们继续分析自毁程序密码这个app,我们发现该程序会用fopen ()打开/proc/[pid]/status这个文件,随后会用fgets()和strstr()来获取,于是我们在strstr()处下个 ...

  7. 【读书笔记】iOS网络-负载

    负载指的是在服务的请求响应事务中交换的数据.常见的负载格式包括XML,JSON与HTML. 进入与发出的负载数据存在很多形式与大小.比如,有些开发者会使用原生的字符串或是以分隔符分开的数据与Web S ...

  8. Android打开相机和打开相册

    打开相机 /** * 选择相机 */ private void showCamera() { // 跳转到系统照相机 Intent cameraIntent = new Intent(MediaSto ...

  9. 开放-封闭原则(OCP)开-闭原则 和 依赖倒转原则,单一职责原则

    单一职责原则 1.单一职责原则(SRP),就一个类而言,应该仅有一个引起它变化的原因 2.如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会消弱或抑制这个类完成其他职责的能力. ...

  10. Spring MVC 原理小结

    主要由DispatcherServlet.处理器映射.处理器.视图解析器.视图组成   1.DispatcherServlet接收到一个HTTP请求,根据对应配置文件中的处理机映射,找到处理器(Han ...