GPLT/L1-020
L1-020 帅到没朋友(模拟)当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友。本题就要求你找出那些帅到没有朋友的人。
输入格式:输入第一行给出一个正整数 N(≤100),是已知朋友圈的个数;随后 N 行,每行首先给出一个正整数 K(≤1000),为朋友圈中的人数,然后列出一个朋友圈内的所有人——为方便起见,每人对应一个ID号,为5位数字(从00000到99999),ID间以空格分隔;之后给出一个正整数 M(≤10000),为待查询的人数;随后一行中列出 M 个待查询的ID,以空格分隔。
注意:没有朋友的人可以是根本没安装“朋友圈”,也可以是只有自己一个人在朋友圈的人。虽然有个别自恋狂会自己把自己反复加进朋友圈,但题目保证所有 K 超过1的朋友圈里都至少有2个不同的人。
输出格式:按输入的顺序输出那些帅到没朋友的人。ID间用1个空格分隔,行的首尾不得有多余空格。如果没有人太帅,则输出 No one is handsome 。
注意:同一个人可以被查询多次,但只输出一次。
输入样例1:12345633 11111 22222 555552 33333 444444 5 ...
GPLT/L1-019
L1-019 谁先倒(模拟)划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就输了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。
下面给出甲、乙两人的酒量(最多能喝多少杯不倒)和划拳记录,请你判断两个人谁先倒。
输入格式:输入第一行先后给出甲、乙两人的酒量(不超过100的非负整数),以空格分隔。下一行给出一个正整数 N(≤100),随后 N 行,每行给出一轮划拳的记录,格式为:
1甲喊 甲划 乙喊 乙划
其中 喊 是喊出的数字,划 是划出的数字,均为不超过100的正整数(两只手一起划)。
输出格式:在第一行中输出先倒下的那个人:A 代表甲,B 代表乙。第二行中输出没倒的那个人喝了多少杯。题目保证有一个人倒下。注意程序处理到有人倒下就终止,后面的数据不必处理。
输入样例:123456781 168 10 9 125 10 5 103 8 5 1212 18 1 134 16 12 1515 1 1 16
输出样例:12A1
思路:控制循坏,-1的时候 ...
GPLT/L1-018
L1-018 大笨钟(模拟)微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。不过由于笨钟自己作息也不是很规律,所以敲钟并不定时。一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“当”数就等于那个整点数;如果过了整点,就敲下一个整点数。另外,虽然一天有24小时,钟却是只在后半天敲1~12下。例如在23:00敲钟,就是“当当当当当当当当当当当”,而到了23:01就会是“当当当当当当当当当当当当”。在午夜00:00到中午12:00期间(端点时间包括在内),笨钟是不敲的。
下面就请你写个程序,根据当前时间替大笨钟敲钟。
输入格式:输入第一行按照 hh:mm 的格式给出当前时间。其中 hh 是小时,在00到23之间;mm 是分钟,在00到59之间。
输出格式:根据当前时间替大笨钟敲钟,即在一行中输出相应数量个 Dang 。如果不是敲钟期,则输出:
1Only hh:mm. Too early to Dang.
其中 hh:mm 是输入的时间。
输入样例1:119:05
输出样例1:1DangDangDangDangDangDangDangDang
输入 ...
GPLT/L1-017
L1-017 到底有多二(模拟)一个整数 “犯二的程度” 定义为该数字中包含2的个数与其位数的比值。如果这个数是负数,则程度增加0.5倍;如果还是个偶数,则再增加1倍。例如数字 -13142223336 是个11位数,其中有3个2,并且是负数,也是偶数,则它的犯二程度计算为:$3/11×1.5×2×100%$ ,约为81.82%。本题就请你计算一个给定整数到底有多二。
输入格式:输入第一行给出一个不超过50位的整数 N 。
输出格式:在一行中输出 N 犯二的程度,保留小数点后两位。
输入样例:1-13142223336
输出样例:181.82%
思路:用string处理,第一位判断是否为负数,最后一位判断是否位偶数,用map统计2出现的次数。
代码:1234567891011121314151617181920212223242526#include <bits/stdc++.h>using namespace std;double t = 1, sum, len;string N;map<char, double> m;int main(){ ...
GPLT/L1-016
L1-016 查验身份证(字符串)一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:
首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值 Z ;最后按照以下关系对应 Z 值与校验码 M 的值:
12Z:0 1 2 3 4 5 6 7 8 9 10M:1 0 X 9 8 7 6 5 4 3 2
现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。
输入格式:输入第一行给出正整数 $N(≤100)$ 是输入的身份证号码的个数。随后$N$行,每行给出1个18位身份证号码。
输出格式:按照输入的顺序每行输出1个有问题的身份证号码。这里并不检验前17位是否合理,只检查前17位是否全为数字且最后1位校验码计算准确。如果所有号码都正常,则输出 All passed 。
输入样例1:12345432012419880824005612010X19890101123411010819671130186637070419881216001X
输出样例 ...
GPLT/L1-015
L1-015 跟奥巴马一起画方块(格式化输出)美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!
输入格式:输入在一行中给出正方形边长 $N(3≤N≤21)$ 和组成正方形边的某种字符 C ,间隔一个空格。
输出格式:输出由给定字符 C 画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。
输入样例:110 a
输出样例:12345aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
思路:四舍五入可以用round()函数。
代码:12345678910111213141516171819#include <bits/stdc++.h>using namespace std;int N, space, c;int main(){ scanf("%d%c%c", & ...
GPLT/L1-014
L1-014 简单题(格式化输出)这次真的没骗你 —— 这道超级简单的题目没有任何输入。
你只需要在一行中输出事实:This is a simple problem. 就可以了。
输入样例:1无
输出样例:1This is a simple problem.
思路:代码:123456789#include <bits/stdc++.h>using namespace std;int main(){ cout << "This is a simple problem."; return 0;}
GPLT/L1-013
L1-013 计算阶乘和(数学计算)对于给定的正整数 $N$ ,需要你计算 $S=1!+2!+3!+…+N!$ 。
输入格式:输入在一行中给出一个不超过10的正整数 $N$ 。
输出格式:在一行中输出 $S$ 的值。
输入样例:13
输出样例:19
思路:本题数据小,就用递归实现阶乘了。
代码:12345678910111213141516171819202122232425#include <bits/stdc++.h>using namespace std;int N, sum = 0;int fac(int n){ if(n == 0) return 1; else return n * fac(n-1);}int main(){ cin >> N; for(int i = 1; i <= N; i++) { sum += fac(i); } cout << sum; return 0;}
GPLT/L1-012
L1-012 计算指数(数学计算)真的没骗你,这道才是简单题 —— 对任意给定的不超过 10 的正整数 $n$ ,要求你输出 ${2^{n}}$ 。不难吧?
输入格式:输入在一行中给出一个不超过 10 的正整数 $n$ 。
输出格式:在一行中按照格式 2^n = 计算结果 输出 ${2^{n}}$ 的值。
输入样例:15
输出样例:12^5 = 32
思路:直接用math库的pow()函数计算输出。
代码:123456789101112#include <bits/stdc++.h>using namespace std;int n;int main(){ cin >> n; cout << "2^" << n << " = " << pow(2, n); return 0;}
GPLT/L1-011
L1-011 A-B(字符串)本题要求你计算 $A−B$ 。不过麻烦的是,$A$和$B$都是字符串 —— 即从字符串$A$中把字符串$B$所包含的字符全删掉,剩下的字符组成的就是字符串 $A−B$ 。
输入格式:输入在2行中先后给出字符串$A$和$B$。两字符串的长度都不超过${10^{4}}$ ,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。
输出格式:在一行中打印出 $A−B$ 的结果字符串。
输入样例:12I love GPLT! It's a fun game!aeiou
输出样例:1I lv GPLT! It's fn gm!
思路:遍历两个字符串,保留在A串并且不在B串的字符,然后输出。注意如果用string不能直接用cin,因为cin读入到空格会结束。
代码:1234567891011121314151617181920212223242526272829#include <bits/stdc++.h>using namespace std;string A, B, t = "";int flag ...