1、宁波市第 30 届中小学生计算机程序设计竞赛复赛试题(小学组)第 1 页 共 5 页宁波市第30届中小学生计算机程序设计竞赛复赛试题(小学组)比赛时间:2015年3月28日下午1:304:00题目一览试题名称 幸运数字 英雄卡 最强阵容 最强素数英文代号 lucky card battle prime程序名 lucky.cpp/pas/c card.cpp/pas/c battle.cpp/pas/c prime.cpp/pas/c输入文件名 lucky.in card.in battle.in prime.in输出文件名 lucky.out card.out battle.out prime
2、.out内存限制 128MB 128MB 128MB 128MB时限 1S 1S 1S 1S注意:一、 关于竞赛中编程语言使用的规定参照中国计算机学会公布的关于NOI系列赛编程语言使用限制的规定。二、 评测环境为windows。宁波市第 30 届中小学生计算机程序设计竞赛复赛试题(小学组)第 2 页 共 5 页1. 幸运数字(lucky.cpp/pas/c)【题目描述】 小李非常喜欢数字4和7 ,看到一个数字他就想快速计算出因子里面分别有几个4和7 ,但是智商捉急的他总是要算很久,喜欢编程的你能够帮助他吗?【输入】 第一行一个整数n,表示给定的数字。【输出】 两个用空格隔开的数字,分别表示给定
3、数字的因子中 4 和 7 的个数。【样例输入】 112【样例输出】 2 1【样例说明】 112=4*4*7【数据规模】 50%的数据,3=n=2 30100%的数据, 3=n=260宁波市第 30 届中小学生计算机程序设计竞赛复赛试题(小学组)第 3 页 共 5 页2. 英雄卡(card.cpp/pas/c)【题目描述】 小李非常迷恋收集各种干脆面里面的英雄卡,为此他曾经连续一个月都只吃干脆面这一种零食,但是有些稀有英雄卡真的是太难收集到了。后来某商场搞了一次英雄卡兑换活动,只要你有三张编号连续的英雄卡,你就可以换任意编号的英雄卡。小李想知道他最多可以换到几张英雄卡(新换来的英雄卡不可以再次兑
4、换)。【输入】 第一行,共一个整数n,表示小李拥有的英雄卡数。第二行,共n个空格隔开的数字a i,表示英雄卡的编号。【输出】 输出仅有一行,共 1 个整数,表示小李最多可以换到的英雄卡。【样例输入】 63 1 2 4 4 5【样例输出】 1【样例说明】 1 2 3三张编号连续,可以换一张,换完后剩下4 4 5,不符合兑换规则,无法继续兑换。【数据规模】 70%数据,1=n=1000100%数据, 1=n=10000,1=a i=100000宁波市第 30 届中小学生计算机程序设计竞赛复赛试题(小学组)第 4 页 共 5 页3. 最强阵容(battle.cpp/pas/c)【题目描述】 拿着新换
5、来的英雄卡,小李满心欢喜的准备和同学们PK一下。他们的游戏规则非常简单,双方把自己的牌绕成一圈,然后指定一个起点,从该张牌开始顺时针方向往后取,谁取出的字符串字典序更小(从左到右开始比较,碰到第一个不一样的字符进行比较,比较规则为abz)谁将获得胜利。具体规则可参考样例。虽然现在小李的牌已经很好了,但是你能不能帮他快速算出起始位置,使得他能够派出最强阵容。【输入】 第一行n,表示共有n张牌。第二行共n个用一个空格隔开的小写字母,表示给定的一圈牌起始序列。【输出】 仅一个整数,能获得最小字典序字符串的起点位置。如果有多个位置开始的字符串一样,则输出最小的那个位置,且第一个位置从 1 开始。【样例
6、输入】 4b c a b【样例输出】 3【样例说明】 四个位置取出的字符串分别为bcab,cabb,abbc,bbca ,显然最小位置是3。【数据规模】 30%的数据,1=n=1060%的数据,1=n=1000100%的数据, 1=n=30000宁波市第 30 届中小学生计算机程序设计竞赛复赛试题(小学组)第 5 页 共 5 页4. 最强素数(prime.cpp/pas/c)【题目描述】 小李在你帮助之下轻松战胜了他的同学们,于是满怀恶意的同学出了一个题目来为难小李,作为小李神一样的队友,你又要出力了。素数41 能写成连续6个素数之和:41=2+3+5+7+11+13。现在要求n以内的 素数中,能表示为最多连续素数之和的那个数,如果有多个答案,请输出最大的那个素数。【输入】 仅一行,一个整数n。【输出】 输出就一个整数,为所求的能表示为最多连续素数和的那个素数。 【样例输入】 100【样例输出】 41【样例说明】 41=2+3+5+7+11+13【数据规模】 30%的数据,1=n=100060%的数据,1=n=1000080%的数据,1=n=100000100%的数据, 1=n=1000000