全国站

热门城市 | 全国 北京 上海 广东

华北地区 | 北京 天津 河北 山西 内蒙古

东北地区 | 辽宁 吉林 黑龙江

华东地区 | 上海 江苏 浙江 安徽 福建 江西 山东

华中地区 | 河南 湖北 湖南

西南地区 | 重庆 四川 贵州 云南 西藏

西北地区 | 陕西 甘肃 青海 宁夏 新疆

华南地区 | 广东 广西 海南

资    源
  • 资    源
当前位置:查字典高考网>高中频道>信息学联赛知识>信息学联赛知识:ISBN号码

信息学联赛知识:ISBN号码

来自:查字典高考网 2009-11-12

1.ISBN号码

(isbn.pas/c/cpp)

【问题描述】

每一本正式出版的图书都有一个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,再求和,即01+62++29=158,然后取158 mod 11的结果4作为识别码。

你的任务是编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出Right;如果错误,则输出你认为是正确的ISBN号码。

【输入】

输入文件isbn.in只有一行,是一个字符序列,表示一本书的ISBN号码(保证输入符合ISBN号码的格式要求)。

【输出】

输出文件isbn.in共一行,假如输入的ISBN号码的识别码正确,那么输出Right,否则,按照规定的格式,输出正确的ISBN号码(包括分隔符-)。

【输入输出样例1】

Isbn.inisbn.out

0-670-82162-4Right

【输入输出样例2】

isbn.inisbn.out

0-670-82162-00-670-82162-4

【试题分析】

首先将ISBN串前9个数字分别转换成整型数并储存在数组里,因为这9个数字从左到右分别乘以1,2,,9的和的最大值小于32767,所以使用整型变量储存。

按试题要求计算识别码,并与ISBN号码中识别码做比较,如果正确,输出Right;如果错误,则输出正确的ISBN号码。

【参考程序】

program isbn;

var

i,j:integer;

s:string;

a:array[1..9] of integer;

l:char;

procedure input;{输入过程}

var

f:text;

begin

assign(f,'isbn.in');

reset(f);

read(f,s);{将ISBN码读入字符串s中}

close(f);

end;

procedure output;{输出过程}

var

f:text;

begin

assign(f,'isbn.out');

rewrite(f);

if s[13]=l then

write(f,'Right'){如果识别码正确则输出Right}

else

begin{如果不正确则输出正确的ISBN码}

for i:=1 to 12 do

write(f,s[i]);

write(f,l);

end;

close(f);

end;

procedure main;{主过程}

begin

j:=0;

for i:=1 to 11 do{将前九个数转换成整型并存入a数组}

if s[i]'-' then

begin

inc(j);

if s[i]='0' then

a[j]:=0

else

a[j]:= ord(s[i])-48;

end;

j:=0;

for i:=1 to 9 do

j:=a[i]*i+j;

j:=j mod 11;{计算识别码}

if j=10 then

l:='X'{处理结果为10}

else

if j=0 then

l:='0'

else

l:= chr(j+48);

end;

begin

input;

main;

output;

end.

2.排座椅

(seat.pas/c/cpp)

【问题描述】

上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情。不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头耳。同学们在教室中坐成了M行N列,坐在第i行第j列的同学的位置是(i,j),为了方便同学们进出,在教室中设置了K条横向的通道,L条纵向的通道。于是,聪明的小雪想到了一个办法,或许可以减少上课时学生交头接耳的问题:她打算重新摆放桌椅,改变同学们桌椅间通道的位置,困为如果一条通道隔开了两个会交头接耳的同学,那么他们就不会交头接耳了。

请你帮忙给小雪编写一个程序,给出最好的通道划分方案。在该方案下,上课时交头接耳的学生的对数最少。

【输入】

输入文件seat.in的第一行,有5个用空格隔开的整数,分别是M,N,K,L,D(2﹤=N,M﹤=1000,0﹤=K﹤M,0﹤=L﹤N,D﹤=2000)。

接下来D行,每行有4个用空格隔开的整数。第i行的4个整数Xi,Yi,Pi,Qi,表示坐在位置(Xi,Yi)与(Pi,Qi)的两个同学会交头接耳(输入保证他们前后相邻或者左右相邻)。

输入数据保证最优方案的唯一性。

【输出】

输出文件seat.out共两行。

第一行包含K个整数,a1 a2 ak,表示第a1行和第a1+1行之间、第a2行和a2+1行之间、、第ak行和第ak+1行之间要开展通道,其中ai﹤ ai+1,每两个整数之间用空格隔开(行尾没有空格)。

第二行包含L个整数,b1 b2bl,表示第b1列和b1+1列之间、第b2列和b2+1列之间、、第bl列和第bl +1列之间要开辟通道,其中bi﹤bi+1,每两个整数之间用空格隔开(行尾没有空格)。

【输入输出样例】

seat.inseat.out

4 5 1 2 3

4 2 4 3

2 3 3 3

2 5 2 42

2 4

【输入输出样例解释】

┌─┬─╂─┬─╂─┐

4 │ │* ┃* │ ┃ │

├─┼─╂─┼─╂─┤

3 │ │ ┃※│ ┃ │

━┿━┿━╋━┿━╋━┿

2 │ │ ┃※│+ ┃+ │

├─┼─╂─┼─╂─┤

1 │ │ ┃ │ ┃ │

└─┴─╂─┴─╂─┘

1 2 ┃3 4 ┃5

【试题分析】

先将每对交头接耳的同学位置(Xi,Yi)与(Pi,Qi)分别读入X、Y、P、Q四个一维数组中,再找出需设通道(隔开交头接耳的学生)的位置,横向通道存入a数组,竖向通道存入b数组,数组的角标表示通道位置,数组内储存能隔开交头接耳学生的对数。

从a、b数组中找出能隔开交头接耳的学生对数最多的通道,分别存入aa、bb数组,排序后输出。

【参考程序】

program seat;

type

arr=array[1..999] of integer;

var

m,n,k,l,d,i:integer;

x,y,p,q:array[1..2000] of integer;

a,b,aa,bb:arr;

procedure input; {输入过程}

var

f:text;

begin

assign(f,'seat.in');

reset(f);

readln(f,m,n,k,l,d);

for i:=1 to d do

readln(f,x[i],y[i],p[i],q[i]);{读入会交头接耳学生的位置}

close(f);

end;

procedure output;{输出过程}

var

f:text;

begin

assign(f,'seat.out');

rewrite(f);

for i:=1 to k do

begin

write(f,aa[i]);

if ik then write(f,' ');{防止行尾有空格}

end;

writeln(f);

for i:=1 to l do

begin

write(f,bb[i]);

if il then write(f,' ');

end;

close(f);

end;

procedure td(a:arr;k,m:integer;var aa:arr);{ 通道划分过程}

var

j,u,i,t:integer;

begin

j:=0;

while jk do{找出能隔开交头接耳的学生对数最多的通道}

begin

u:=-1;

for i:=1 to m-1 do

if a[i]u then

begin

u:=a[i];

t:=i;

end;

a[t]:=-1;

inc(j);

aa[j]:=t;

end;

for i:=1 to k-1 do{排序}

begin

u:=i;

for j:=i+1 to k do

if aa[j]aa[u] then u:=j;

t:=aa[i];aa[i]:=aa[u];aa[u]:=t;

end;

end;

procedure main; {主过程}

var

u,t,r,o:integer;

begin

for i:=1 to d do{找出在何处需设通道隔开交头接耳的学生}

if y[i]=q[i] then

if x[i]p[i] then inc(a[x[i]]) else inc(a[p[i]])

else if y[i]q[i] then inc(b[y[i]]) else inc(b[q[i]]);

td(a,k,m,aa);

td(b,l,n,bb);

end;

begin

input;

main;

output;

end.

【信息学联赛知识:ISBN号码】相关文章:

全国高中化学竞赛初赛模拟试卷六

2007年高中数学联赛四川赛区初赛试题参考答案及评分标准

2006年全国高中数学联合竞赛(一试)试题参考答案及评分标准

2006年全国高中数学联合竞赛(一试)试题参考答案及评分标准

信息学联赛知识:基本程序题集解题报告

2006年全国高中数学联合竞赛浙江省预赛试卷

高中数学联赛培训讲义(三)

信息学联赛知识:Complete Search

信息学联赛知识:动态规划的状态表示(二)

2007年全国高中数学联赛陕西赛区预赛试题与答案

[标签:竞赛联赛,数学联赛]

网友关注

新疆维吾尔自治区2017年普通高等学校招生工作规定

教你提高2017年高考英语“单选”命中率的技巧

黑龙江:完成全省本科高校章程制定核准

天津:普通高考体育类专业考试15、16日进行

新疆2017年高考设18个平行志愿 加分政策需规范

高考专业解读:经济学专业解析及注意事项

成都大学一老师骨折后仍坚持上课20多天

2017年6月广东普通高中学业水平考试报名工作通知

2017年广东学业水平考试成绩成为普通高校招生录取依据

教育部发文规范高校自主招生

财政部等四部门进一步落实高等教育学生资助政策

“衡中入浙”风波背后的“法律戏”:办学招生是否合法

教你秒杀2017高考英语听力的得分技巧

国家助学贷款秋季起覆盖至科研院所等各类培养单位

2017年宁夏回族自治区确定高考录取照顾政策

新疆:2017年普通高校招生工作规定出台

湖北省2017年高考艺术类招生志愿结构调整

新疆:关于做好2017年普通高校招生工作的通知

陕西高考公布美术类2018年专业课统考考试大纲

江西2017年普通高考报名人数36.49万

2017年理综答题时间有哪些分配技巧?

高校大屏曝光共享单车不文明使用者 鼓励学生举报

高三二模后高考冲刺阶段应该注意什么?

盘点2017年高考最新出炉的加分政策有哪些?

2017年天津高考体育类专业考试4月15日至16日开考

2017年起取消双语班考生普遍性照顾加分政策

孩子高考冲刺,家长要从这三个方面助力

让高校沿自主轨道奔向“双一流”

西安外国语大学退还学费事件发酵 多所高校疑超标

2017年高考改革解读:“三结合四支点”推动改革

网友关注视频

一边扔试卷一边玩摇滚?这个学校的高考减压方式,真是帅到没朋友

创艺第二届:2019届高考录取表彰大会暨“核桃音乐节”合影——你只管努力,剩下的交给创艺

组合名师余老师在线讲解2019高考数学全国3卷理科16题

这四首励志歌曲,送给为梦起航的高考学子们,听完心潮澎湃!

知道班里的高考成绩后,山东班主任气吐血了

1000张学生用草稿纸考研专用免邮空白便宜薄演草演算纸白纸本书写纸批发打草a4大张实惠装18k高考数学草稿本

看懂图片,你也会做高考地理题,解析2019年高考文综地理4

高考前必听的5首励志歌曲,《Dream it possible》最能鼓舞人心!

高级中学高考试卷分析专题教研评比活动

2019 广西:帅气学霸高考730分 数学英语满分!

沈阳音乐学院郎亦农教授的女高音高考曲目解析课程 第9集 《赛吾里麦》演唱讲解,音乐表现一定要自然流畅

葛军大爷怒了:高考我出了个小学数学送分题,你们跟我说不会做?

新闻早报 2019 高考前最后一课 合唱送给班主任

爆笑班主任 第一季 第220集 高考前最后一只视频,山东王老师揭秘高考的秘密

视频|上海高考作文: 寻找“中国味” 专家

张雪峰高考志愿填报指南 第47集 高考志愿,令人头疼的数学系,才是专业万金油,毕业后机会多

2019全国高考志愿填报攻略 第50集 天津市高考历史三年本科录取排名

高考阅卷名师给考生的高考作文密训课 第4集 高考作文审题实操方法精讲(二)

这!就是专业 第47集 江苏理工学院

美术联考用纸上海考试模拟试卷纸高考统考纸 4k水粉纸素描纸 速写纸卡纸美术模拟测试试卷纸 美术考试专用纸

张雪峰高考志愿填报指南 第15集 高考填报志愿,想学电子信息类专业,推荐报这六所高校,不出错

星闻乐坊 第1272集 张杰的一首歌成了高考神曲

张雪峰高考志愿填报指南 第28集 高考志愿分析,材料科学与工程专业,就业很一般,建议慎重选择

2019高考语文试卷解析

高考同学看过来,难度系数三颗星的奥数1

amc传媒音乐影像 第一季 第600集 高中校长演唱《记忆花园》为高考学子助力打气

高考帮:这!就是专业 第8集 安徽师范大学

高考阅卷名师给考生的高考作文密训课 第3集 高考作文审题实操方法精讲(一)

探秘历史 第二季 第479集 河南叛逆高考生,写下8000字批判作文,现状如何?

一站到底:高考语文老师上台,穿长衫说Rap,全场笑翻了!