编程题 共5道
投票
本题请你实现一个简单的投票统计工具:投票同意的人输入 1,反对的人输入 0。简单多数胜。
时间限制:1000
内存限制:65536
输入
输入在一行中给出一系列的投票值,1 表示同意,0 表示反对,-1 表示结束。
输出
统计并输出投票的结果:如果同意的人多就输出 `Yes`;反对的人多就输出 `No`;平票就输出 `Tie`。然后在第二行输出同意的人数和反对的人数,其间隔 1 个冒号 `:`。
样例输入
样例#1: 1 0 0 1 1 -1 样例#2: 0 0 0 1 -1 样例#3: 1 1 1 0 0 0 -1 样例输出
样例#1: Yes 3:2 样例#2: No 1:3 样例#3: Tie 3:3
千年一遇对称日
在 2021 年 12 月 02 日这天(20211202),有人发了这么一张图,上书“千年一遇对称日,万事圆满在今朝”。话是挺吉利的,但好像下一个对称日并不需要等上一千年…… 下面任给一个人的生卒年份,请你列出来这个人一辈子经过的所有对称日。
输入第一行给出一个人的名字,是由不超过30个字符的英文字母和空格组成的、以回车结束的非空字符串。第二行按 `yyyymmdd - yyyymmdd` 的格式给出这个人的生卒年(`yyyy`)、月(`mm`)、日(`dd`)。 虽然生卒日期可能是虚构的,但题目保证出生日期在去世日期之前,且每个日期都是合法的,从 `00010101` 到 `99991231`。注意这里遵循“四年一闰,百年不闰,四百年再闰”的规则定义闰年,即年份是 4 的倍数,且不是 100 的倍数的,为普通闰年;年份是整百数的,必须是 400 的倍数才是闰年。闰年跟普通年的区别就是 2 月有 29 天。
首先在第一行原样输出这个人的名字。随后按照时间顺序,每行输出该人所经历的一个对称日,格式与输入格式相同。注意:生卒日期也包含在内。
Katherine Johnson 19180826 - 20200224 样例输出
Katherine Johnson 20011002 20100102 20111102 20200202
6翻了
“666”是一种网络用语,大概是表示某人很厉害、我们很佩服的意思。最近又衍生出另一个数字“9”,意思是“6翻了”,实在太厉害的意思。如果你以为这就是厉害的最高境界,那就错啦 —— 目前的最高境界是数字“27”,因为这是 3 个 “9”!
本题就请你编写程序,将那些过时的、只会用一连串“6666……6”表达仰慕的句子,翻译成最新的高级表达。
输入在一行中给出一句话,即一个非空字符串,由不超过 1000 个英文字母、数字和空格组成,以回车结束。
从左到右扫描输入的句子:如果有超过 9 个连续的 6,则将这串连续的 6 替换成 27。否则如果句子中有超过 3 个连续的 6,则将这串连续的 6 替换成 9;其他内容不受影响,原样输出。
it is so 666 really 6666 what else can I say 6666666666 样例输出
it is so 666 really 9 what else can I say 27
不变初心数
不变初心数是指这样一种特别的数,它分别乘 2、3、4、5、6、7、8、9 时,所得乘积各位数之和却不变。例如 18 就是这样的数:18 的 2 倍是 36,3+6=9;18 的 3 倍是 54,5+4=9;…… 18 的 9 倍是 162,1+6+2=9。对于 18 而言,9 就是它的初心。本题要求你判断任一个给定的数是否有不变的初心。
输入在第一行中给出一个正整数 N(≤ 100)。随后 N 行,每行给出一个不超过 105 的正整数。
对每个给定的数字,如果它有不变的初心,就在一行中输出它的初心;否则输出 `NO`。
4 18 256 99792 88672 样例输出
9 NO 36 NO
答题卡
新浪微博上有网友发文称:“朋友买了本玻尔X海森堡的物理大佬同人本,送了300道高数题。更绝的是,要做完题目按照答案涂答题卡,涂出一个二维码,扫描二维码才能看到特典,做错了就看不到了……”那张传说中的答题卡如下图所示:
若答案为 4 位整数(位数不足时在前面补足 0),则前两位为横坐标,后两位为纵坐标。若一题有两小问,则第一问答案为横坐标,第二问答案为纵坐标。若答案为分数,则分子为横坐标,分母为纵坐标。
本题就请你根据答案帮助读者填写答题卡。
输入首先在第一行给出两个正整数:2 < n ≤ 90 为二维码的规模,即二维码是由 n × n 个小方块组成的大方块,左下角的小方块对应坐标 (1, 1),右上角的小方块对应坐标 (n, n);另一个 m(< n2)是答案的个数。最后 m 行,每行按以下格式之一给出一题的答案:或者是一个不超过 4 位的整数;或者是两小问的答案 `答案1;答案2`;或者是一个分数 `分子/分母`。这里保证每个答案都可以解析为一个二维码中的方块位置(即不存在超出二维码范围的坐标)。
输出 n 行,每行 n 个字符,空格用 `.` 表示,涂了答案的黑格用 `#` 表示。
5 7 205 3;2 4/5 101 3;3 4/3 5;1 样例输出
.#.#. ..... ..##. ..#.. #...#