【2022寒假萌新训练-1】7-4 输出字符串中出现的字符
输入一个字符串(包括大小写字母和空格),除去空格输出在字符串中出现过的字符。
输入格式:输入一个字符串
输出格式:输出在字符串中出现过的字符,每个字符打印一次,按字母顺序打印(注意:空格不算,大小写字符算不同字符)。打印时按字母的顺序,大写在前,小写在后。
输入样例:在这里给出一组输入。例如:
1This is a good hat
输出样例:在这里给出相应的输出。例如:
1Tadghiost
思路题目给定字符串带空格,使用getline输入
遍历字符串,利用数组记录各个字符出现的次数
再按照题目要求先输出大写,再输出小写即可
代码1234567891011121314151617181920212223#include <iostream>using namespace std;int main() { string str; getline(cin, str); //带空格输入 int book[200] = {0}; //0 for(int i = 0; i < (int)str.size(); i++) ...
【2022寒假萌新训练-1】7-1 求一个三位正整数各位数字之和
求一个三位正整数各位数字之和
输入样例:1678
输出样例:121
思路题目保证是一个三位数,可利用scanf控制输入格式
代码12345678910#include <iostream>using namespace std;int main() { int a, b, c; scanf("%1d%1d%1d", &a, &b, &c); cout << a + b + c << endl; return 0;}
【2022寒假萌新训练-1】7-5 A-B
本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。
输入格式:输入在2行中先后给出字符串A和B。两字符串的长度都不超过104,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。
输出格式:在一行中打印出A−B的结果字符串。
输入样例:12I love GPLT! It's a fun game!aeiou
输出样例:1I lv GPLT! It's fn gm!
思路遍历第二个字符串,利用数组标记出现的字符,再遍历第一个,若数组对应位置大于0则不输出
代码123456789101112131415161718192021#include <iostream>using namespace std;int main() { string t1; getline(cin, t1); string t2; getline(cin, t2); int book[200] = {0}; ...
【2022寒假萌新训练-1】7-2 求整数的位数及各位数字之和
对于给定的正整数N,求它的位数及其各位数字之和。
输入格式:输入在一行中给出一个不超过109的正整数N。
输出格式:在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
输入样例:1321
输出样例:13 6
思路题目输入的正整数很大,可当作字符串处理,当然也作为long类型输入
若作为字符串处理,即输出字符串的长度和每位的累加和(字符转为数字)
代码1234567891011121314#include <iostream>using namespace std;int main() { string str; cin >> str; int ret = 0; for(int i = 0; i < (int)str.size(); i++) { ret = ret + (str[i] - '0'); //字符转为数字,注意一定要加括号 } cout << str.size() << " " << ret << endl ...
【2022寒假萌新训练-1】7-3 日期格式化
世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。
输入格式:输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。
输出格式:在一行中按照“yyyy-mm-dd”的格式给出年、月、日。
输入样例:103-15-2017
输出样例:12017-03-15
思路题目保证输入格式为mm-dd-yyyy,利用scanf作格式控制
代码12345678910#include <iostream>using namespace std;int main() { int a, b, c; scanf("%d-%d-%d", &a, &b, &c); printf("%04d-%02d-%02d\n", c, a, b); return 0;}
【2022每日分享day03】《艾伦·图灵传:如谜的解谜者》
河北大学2022寒假萌新程序设计训练每日知识分享-day03
每日分享——《艾伦·图灵传:如谜的解谜者》作者是[英]安德鲁·霍奇斯,电影《模仿游戏》就是由此改编。在这本书中,你将会看到一个天才复杂而又孤独的一生。图灵出身于英国的一个中产阶级家庭,祖辈有着良好的教育背景,虽然自幼聪慧,但天生的“不合群”性格却让他在早期的学生时期举步维艰。随着考入剑桥,图灵的数学能力得到了充分的发展,他的天才人生也就此起飞:1935年构想出后来被世人称为“通用图灵机”的抽象设备,1940年二战期间破解德国著名密码系统Enigma,1945年设计ACE。1950年,图灵编写并出版了《曼彻斯特电子计算机程序元手册》,为后来的人工智能科学提供了开创性构思。同年,他发表论文《计算机和智能》,提出了“模仿游戏”(即著名的“图灵测试”)。图灵的机器智能思想无疑是人工智能的直接起源之一。而且随着人工智能领域的深入研究,人们越来越认识到图灵思想的深刻性:它们如今仍然是人工智能的主要思想之一。
【2022寒假精进训练-1】7-7 抢红包
没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。
输入格式:输入第一行给出一个正整数N(≤104),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下:
K N1 P1 ⋯ NK PK
其中K(0≤K≤20)是发出去的红包个数,N*i是抢到红包的人的编号,P*i(>0)是其抢到的红包金额(以分为单位)。注意:对于同一个人发出的红包,每人最多只能抢1次,不能重复抢。
输出格式:按照收入金额从高到低的递减顺序输出每个人的编号和收入金额(以元为单位,输出小数点后2位)。每个人的信息占一行,两数字间有1个空格。如果收入金额有并列,则按抢到红包的个数递减输出;如果还有并列,则按个人编号递增输出。
输入样例:1234567891011103 2 22 10 58 8 1255 1 345 3 211 5 233 7 13 8 1011 7 88002 1 1000 2 10002 4 250 10 3206 5 11 9 22 8 33 7 44 10 55 4 ...
【2022寒假精进训练-1】7-10 悄悄关注
新浪微博上有个“悄悄关注”,一个用户悄悄关注的人,不出现在这个用户的关注列表上,但系统会推送其悄悄关注的人发表的微博给该用户。现在我们来做一回网络侦探,根据某人的关注列表和其对其他用户的点赞情况,扒出有可能被其悄悄关注的人。
输入格式:输入首先在第一行给出某用户的关注列表,格式如下:
1人数N 用户1 用户2 …… 用户N
其中N是不超过5000的正整数,每个用户i(i=1, …, N)是被其关注的用户的ID,是长度为4位的由数字和英文字母组成的字符串,各项间以空格分隔。
之后给出该用户点赞的信息:首先给出一个不超过10000的正整数M,随后M行,每行给出一个被其点赞的用户ID和对该用户的点赞次数(不超过1000),以空格分隔。注意:用户ID是一个用户的唯一身份标识。题目保证在关注列表中没有重复用户,在点赞信息中也没有重复用户。
输出格式:我们认为被该用户点赞次数大于其点赞平均数、且不在其关注列表上的人,很可能是其悄悄关注的人。根据这个假设,请你按用户ID字母序的升序输出可能是其悄悄关注的人,每行1个ID。如果其实并没有这样的人,则输出“Bing Mei You”。
输入样例:123 ...
【2022寒假精进训练-1】7-8 名人堂与代金券
对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,总评成绩必须达到 60 分及以上,并且有另加福利:总评分在 [G, 100] 区间内者,可以得到 50 元 PAT 代金券;在 [60, G) 区间内者,可以得到 20 元PAT代金券。全国考点通用,一年有效。同时任课老师还会把总评成绩前 K 名的学生列入课程“名人堂”。本题就请你编写程序,帮助老师列出名人堂的学生,并统计一共发出了面值多少元的 PAT 代金券。
输入格式:输入在第一行给出 3 个整数,分别是 N(不超过 10 000 的正整数,为学生总数)、G(在 (60,100) 区间内的整数,为题面中描述的代金券等级分界线)、K(不超过 100 且不超过 N 的正整数,为进入名人堂的最低名次)。接下来 N 行,每行给出一位学生的账号(长度不超过15位、不带空格的字符串)和总评成绩(区间 [0, 100] 内的整数),其间以空格分隔。题目保证没有重复的账号。
输出格式:首先在一行中输出发出的 PAT 代金券的总面值。然后按总评成绩非升序输出进入名人堂的学 ...
【2022寒假精进训练-1】7-9 重排链表
给定一个单链表 L1→L2→⋯→Ln−1→Ln,请编写程序将链表重新排列为 Ln→L1→Ln−1→L2→⋯。例如:给定L为1→2→3→4→5→6,则输出应该为6→1→5→2→4→3。
输入格式:每个输入包含1个测试用例。每个测试用例第1行给出第1个结点的地址和结点总个数,即正整数N (≤105)。结点的地址是5位非负整数,NULL地址用−1表示。
接下来有N行,每行格式为:
1Address Data Next
其中Address是结点地址;Data是该结点保存的数据,为不超过105的正整数;Next是下一结点的地址。题目保证给出的链表上至少有两个结点。
输出格式:对每个测试用例,顺序输出重排后的结果链表,其上每个结点占一行,格式与输入相同。
输入样例:123456700100 600000 4 9999900100 1 1230968237 6 -133218 3 0000099999 5 6823712309 2 33218
输出样例:12345668237 6 0010000100 1 9999999999 5 1230912309 2 0000000000 4 332183 ...