全国站

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

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

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

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

华中地区 | 河南 湖北 湖南

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

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

华南地区 | 广东 广西 海南

资    源
  • 资    源
当前位置:查字典高考网>高中频道>信息学联赛知识>信息学联赛知识: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年全国高中数学联合竞赛(一试)试题参考答案及评分标准

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

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

信息学联赛知识:Complete Search

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

信息学联赛知识:贪心策略的特点与在信息学竞赛中的应用

高中数学竞赛基本知识集锦(一)

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

2007年全国高中数学联合竞赛加试试卷

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

网友关注

命题专家:2020年高考文科综合试题解析

2020湖北高考录取分数线:理工涨文史降

疫情与改革叠加2020年高考语文有哪些亮点

2020志愿填报:各层次师范大学优势专业大盘点 —查字典高考网

甘肃:7月25日起进行第一次高考志愿填报 —查字典高考网

高考2020北京卷数学解析:重视数学应用将美育融入数学教育

2020高考北京卷数学特点分析

专家解析高考数学全国卷:战疫入题考查关键能力

江西:关于2020年普通高校艺术类专业招生工作规定的通知

2020高考结束要知道的考后信息

北京卷高考英语:坚持稳中求进注重学以致用

2020年全国普通高考II 卷语文试题作文题详解及同题作文

2020年高考语文北京卷:变中求稳正面导向发挥育人功能

沪考心语 | 准确把握进程,尽早酝酿志愿

2020年全国普通高考III 卷语文试题作文题详解及同题作文

名师解析2020高考数学真题:注重综合能力考查

全国各地2020年高考志愿填报时间

2020年全国普通高考北京卷语文试题作文题详解及同题作文

招1806人!河南考生速看!7所公安院校招人啦!

2020年北京卷高考英语评析:稳中求变

南京市正高级教师:江苏卷高考历史试题评析

专家:语文题难度略降 新高考地区现代文阅读有调整

安徽:2020年公安院校报考须知 —查字典高考网

2020高校联招华侨港澳台学生考试8月3-4日举行

江苏:高考卷原来是这样改出来的

@2020浙江考生,网上志愿填报怎么操作?明起开始模拟演练

2020年教育部公布查字典高考网上咨询周时间安排

南外正高级教师:2020江苏高考物理试题评析

西藏:2020年高考成绩查询入口(官网) —查字典高考网

命题专家:2020年高考英语试题解析

网友关注视频

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

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

2019高考·语文试题有亮点 凸显时代主题 厚植家国情怀

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

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

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

老师好:这大概是高考前所有班主任都会干的事,取消一切副课!

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

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

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

探秘历史 第二季 第233集 考英语用来睡觉,结果仍是高考状元,如今她怎么样了?

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

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

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

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

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

广州早晨 2019 山西一高中班主任带学生骑行1800公里去上海

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

学渣儿子高考,英语选择题全选B!老师通报成绩的那一刻父亲懵了

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

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

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

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

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

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

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

盘点今年最难的高考数学题

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

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

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