普及组复赛字符串编程题_第1页
普及组复赛字符串编程题_第2页
普及组复赛字符串编程题_第3页
普及组复赛字符串编程题_第4页
普及组复赛字符串编程题_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——普及组复赛字符串编程题1.ISBN号码(08年普及组第1题)

(isbn.pas/c/cpp)

每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x〞,其中符号“-〞是分隔符(键盘上的减号),最终一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-〞之后的三位数字代表出版社,例如670代表维京出版社;其次个分隔之后的五位数字代表该书在出版社的编号;最终一位为识别码。

识别码的计算方法如下:首位数字乘以1加上次位数字乘以2??以此类推,用所得的结果mod11,所得的余数即为识别码,假使余数为10,则识别码为大写字母X。例如ISBN号码0-670-82162-4中的识别码4是这样得到的:对067082162这9个数字,从左至右,分别乘以1,2,…,9,再求和,即0×1+6×2+??+2×9=158,然后取158mod11的结果4作为识别码。

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

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

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

isbn.in0-670-82162-4

isbn.in0-670-82162-0

2、字符串的展开(07年提高组第2题)

(expand.pas/c/cpp)

isbn.out0-670-82162-4isbn.outRight在初赛普及组的“阅读程序写结果〞的问题中,我们曾给出一个字符串展开的例子:假使在输入的字符串中,含有类似于“d-h〞或“4-8〞的子串,我们就把它当作一种简写,输出时,用连续递增的字母或数字串替代其中的减号,即,将上面两个子串分别输出为“defgh〞和“45678〞。在此题中,我们通过增加一些参数的设置,使字符串的展开更为灵活。具体约定如下:

(1)遇到下面的状况需要做字符串的展开:在输入的字符串中,出现了减号“-〞,减号两侧同为小写字母或同为数字,且依照ASCII码的顺序,减号右边的字符严格大于左边的字符。

(2)参数p1:展开方式。p1=1时,对于字母子串,填充小写字母;p1=2时,对于字母子串,填充大写字母。这两种状况下数字子串的填充方式一致。p1=3时,不管是字母子串还是数字子串,都用与要填充的字母个数一致的星号“*〞来填充。

(3)参数p2:填充字符的重复个数。p2=k表示同一个字符要连续填充k个。例如,当p2=3时,子串“d-h〞应扩展为“deeefffgggh〞。减号两侧的字符不变。

(4)参数p3:是否改为逆序:p3=1表示维持原有顺序,p3=2表示采用逆序输出,注意这时依旧不包括减号两端的字符。例如当p1=1、p2=2、p3=2时,子串“d-h〞应扩展为“dggffeeh〞。

(5)假使减号右边的字符恰好是左边字符的后继,只删除中间的减号,例如:“d-e〞应输出为“de〞,“3-4〞应输出为“34〞。假使减号右边的字符依照ASCII码的顺序小于或等于左边字符,输出时,要保存中间的减号,例如:“d-d〞应输出为“d-d〞,“3-1〞应输出为“3-1〞。

输入文件expand.in包括两行:

第1行为用空格隔开的3个正整数,依次表示参数p1,p2,p3。

第2行为一行字符串,仅由数字、小写字母和减号“-〞组成。行首和行末均无空格。

输出文件expand.out只有一行,为展开后的字符串。expand.in121abcs-w1234-9s-4zz

expand.in232expand.outaCCCBBBd-dexpand.outabcsttuuvvw1234556677889s-4zza-d-d

expand.in342di-jkstra2-6expand.outdijkstra2************6

40%的数据满足:字符串长度不超过5

100%的数据满足:10)

其中,aixi称为i次项,ai称为i次项的系数。。给出一个一元多项式各项的次数和系

数,请依照如下规定的格式要求输出该多项式:

1.多项式中自变量为x,从左到右依照次数递减顺序给出多项式。2.多项式中只包含系数不为0的项。

3.假使多项式n次项系数为正,则多项式开头不出现“+〞号,假使多项式n次项系

数为负,则多项式以“-〞号开头。

4.对于不是最高次的项,以“+〞号或者“-〞号连接此项与前一项,分别表示此项

系数为正或者系数为负。紧跟一个正整数,表示此项系数的绝对值(假使一个高于0次的项,

其系数的绝对值为1,则无需输出1)。假使x的指数大于1,则接下来紧跟的指数部分的形式为“x^b〞,其中b为x的指数;假使x的指数为1,则接下来紧跟的指数部分形式为“x〞;

假使x的指数为0,则仅需输出系数即可。

5.多项式中,多项式的开头、结尾不含多余的空格。

输入文件名为poly.in,共有2行

第一行1个整数,n,表示一元多项式的次数。

其次行有n+1个整数,其中第i个整数表示第n-i+1次项的系数,每两个整数之间用空格隔开。

输出文件poly.out共1行,按题目所述格式输出多项式。

1≤n≤100,多项式各次项系数的绝对值均不超过100。输入样例5100-11-30103-50001输出样例100x^5-x^4+x^3-3x^2+10-50x^3+1

5、Jam的计数法(2023noip普及组第三题)

(count.pas/c/cpp)

Jam是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩。在他的计数法中,每个数字的位数都是一致的(使用一致个数的字母),英文字母按原先的顺序,排在前面的字母小于排在它后面的字母。我们把这样的“数字〞称为Jam数字。在Jam数字中,每个字母互不一致,而且从左到右是严格递增的。每次,Jam还指定使用字母的范围,例如,从2到10,表示只能使用{b,c,d,e,f,g,h,i,j}这些字母。假使再规定位数为5,那么,紧接在Jam数字“bdfij〞之后的数字应当是“bdghi〞。(假使我们用U、V依次表示Jam数字“bdfij〞与“bdghi〞,则U80),并且在本学期内发表1篇或1篇以上论文的学生均可获得;

2)五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得;

3)成绩优秀奖,每人2000元,期末平均成绩高于90分(>90)的学生均可获得;

4)西部奖学金,每人1000元,期末平均成绩高于85分(>85)的西部省份学生均可获得;

5)班级贡献奖,每人850元,班级评议成绩高于80分(>80)的学生干部均可获得;

只要符合条件就可以得奖,每项奖学金的获奖人数没有限制

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论