2018 年山东省信息学奥林匹克联赛(NOIP2018)复赛小学组试题(二)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2018年山东省信息学奥林匹克联赛(NOIP2018)复赛

小学组试题(二)

(2018年11月10日16:30~18:00)

(请选手务必仔细阅读本页内容)

一.题目概况

二.提交源程序文件名

注意事项:

1.文件名(程序名和输入输出文件名)必须使用英文小写。

2.C/C++中函数 main()的返回值类型必须是 int,程序正常结束时的返回值必须是 0。

三.参考文件输入输出操作

以第一题为例:

一.统计成绩

【问题描述】

考试结束之后,每位同学都依据成绩获得相应的等级:

优秀:90~100;

良好:80~89;

及格:60~79;

不及格:60以下。

现在,需要统计一下获得每个等级的人数分别是多少。

【输入】

输入文件名为count.in。

第一行,一个正整数n,表示总人数。

第二行,n个由空格隔开的整数,表示每个同学的成绩(0~100)。

【输出】

输出文件名为count.out。

共四行,每行一个整数,依次表示获得优秀、良好、及格、不及格等级的人数。

【输入输出样例】

二. 11的倍数

【问题描述】

如判断一个正整数x是不是3的倍数?

可以计算x÷3所得的余数,如果余数等于0,那么x是3的倍数。

还可以用下面的方法来判断:

把x的个位数字、十位数字、百位数字、……相加,如果所得的和是3的倍数,那么x就是3的倍数。

例如:x = 8511, 8+5+1+1=15,15是3的倍数,那么8511就是3的倍数。

接下来你的任务是,判断x是不是11的倍数。

有一个与判断是不是3的倍数类似的方法供你参考:

把x的个位、百位、万位、……上的数字求和,得s1;

把x的十位、千位、十万位、……上的数字求和,得s2;

如果s1÷11所得的余数 = s2÷11所得的余数,那么x就是11的倍数。

例如:x=3162819

s1 = 3+6+8+9 = 26

s2 = 1+2+1 = 4

因为26÷11余4,4÷11也余4,所以3162819是11的倍数。

【输入】

输入文件名为div.in。

第一行,一个正整数n。

以下n行,每行一个正整数x i,需要你判断x i是不是11的倍数。

【输出】

输出文件名为div.out。

n行,每行输出一个Yes或No,表示x i是不是11的倍数。

注意:每行的输出只能是Yes或No,注意大小写,不要有多余的其它字符(包括空格)。

对于30%的数据,x i的位数不超过9位;

对于50%的数据,x i的位数不超过17位;

对于100%的数据,x i的位数不超过100位,n不超过10.

相关文档
最新文档