全国站

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

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

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

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

华中地区 | 河南 湖北 湖南

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

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

华南地区 | 广东 广西 海南

资    源
  • 资    源
当前位置:查字典高考网>高中频道>信息学联赛知识>信息学联赛知识: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年全国高中数学联赛江苏赛区初赛试卷

2007年全国高中数学联赛江西省预赛试卷

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

2005年全国高中数学联赛考点诠释(二)

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

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

2006年全国高中数学联赛江西省预赛试卷答案及评分标准

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

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

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

网友关注

高考志愿频被篡改 是否有必要入刑引争议

武汉大学校花王安琪 一代江南美女

2017高考语文知识点8个修辞手法讲解

中央音乐学院校花潘杭苇 秀古典美

11月9日起京籍高考生网上报名 报名资格现场确认需月底前完成

从平行志愿测试题目,学习平行志愿填报规则

2017年高考作文题目预测及范文:请学会“弯腰过门”

梁挺福:看《超级工程》谋“超级就业”

上海第二工业大学普通高中学生综合素质评价信息使用办法

2017年高考语文4条常见标点符号8种句式的作用整理

2017年高考语文写作手法26个方法归纳

2017年高考作文题目预测及范文:愿为修心不修脸

备战2017高考数学:基础要打好,计划要做好

上海师范大学天华学院综合素质评价信息使用办法

全班30人保研 学霸班的成就是好还是坏?

吉林省2016年成人高考录取照顾政策

中国美术学院校花蒋蕊泽 气质版“小刘若英”

台湾昆山科技大学校花方唯真成两岸网络红人

浙大学生十秒钟攻破谷歌智能手机 夺得黑客大赛魁首

南京工业大学校花李诗瑶貌美肤白还是学霸

高考2017英语作文必背高分句型汇总

2017新高考大变化,考生该如何招架

2021年新高考方案将于江苏省正式实施

2017高考文言文翻译之两大关键方法及实战试题

2017年高考作文题预测及范文:过程值得享受

解放军艺术学院校花黄筱婷 舞姿柔软似水

2017年高考语文一二三轮考点重要内容复习方法

四川师范大学最美学霸姐妹花清新可爱

上海:2017年普通高等学校招生考试11月10日开始网上报名

2017高考语文你必须要掌握的6种归类方法

网友关注视频

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

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

高中信息技术

这!就是专业 第20集 长沙理工大学—数据科学专业

NBA流言收割机 第6集 神预测?高考数学试题暗示猛龙勇士4

2019高考数学全国2卷理科第16题视频讲解及答案

高级中学高考试卷分析专题教研会

体育生参加高考,太猛了,第一名是飞起来了吗?

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

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

高中数学 107 高考如何秒杀数列

高考政治一轮:《经济生活》第九课(社会主义市场经济)练习

探秘历史 第二季 第211集 此人高考数学考了0分,因作文写3句话被重点大学录取

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

这!就是专业 第31集 阜阳师范学院信息工程学院

外国数学老师挑战中国高考题,一顿“凶猛操作”下来,被虐惨!

这!就是专业 第43集 河北经贸大学—计算机科学与技术专业

高考体育四项生的日常训练——深蹲移动跳:发展膝关节,踝关节力量。

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

初二辍学,3次高考落榜,如今却成为最成功的音乐人之一

乾坤已定,组合解读2019高考数学全国3卷理科18题,你是黑马吗?

男孩考上理想大学,却因为网瘾休学在家,高中班主任上门劝导

爆笑班主任 第一季 第221集 高考结束学生有多疯狂?山东王老师疯狂吐槽

2019高考数学第四题技巧秒出答案

最新高考数学全国2卷第12题视频解读

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

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

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

印度美术高考美术联考,考前培训班

北京新闻 2019 5.9万余北京考生今日高考 语文试题鼓励创造性阅读与表达