【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-6 单词加密解析
输入一个英文单词(由六个小写英文字母组成),按照下列过程将该单词加密:先将英文单词中的小写字母转换为对应的大写字母,再将该大写字母的ASCII码对10整除后取其余数,从而得到一个六位整数密码。
输入格式:输入在一行中给出1个由六个小写英文字母组成的英文单词。
输出格式:按照规则转换成一个六位整数密码,并输出转换的过程。
输入样例:1friday
输出样例:123456f->F->0r->R->2i->I->3d->D->8a->A->5y->Y->9
思路在ASCII代码表中每一个大写字母比它相应的小写字母的ASCII码小32
ASCII范围:a-z:97-122 A-Z:65-90
代码123456789101112#include<iostream>using namespace std;int main() { string s; cin >> s; for(int i = 0; i < (int)s.size(); i++) { ...
【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寒假萌新训练-1】7-7 校验ISBN-10编码
图书使用国际标准书号(International Standard Book Number (ISBN-10))来编码,是一个 10 位码。前 9 位(0−9之间的数字)分别用于表示语言、出版商和 图书信息。第 10 位是校验位,可以是0−9之间的数字或者是字母 X (用于表示数字10);
ISBN-10码可以通过下面方法进行验证:
首先,对ISBN-10码的各个位按下面的计算式求和: 1×x1+2×x2+3×x3+4×x4⋯+9×x9+10×x10
将求和的结果对11取余数,如果余为0,则说明该ISBN-10码是一个有效码,否则,就不是一个有效的ISBN-10码。
现输入一批ISBN-10图书编码,请你验证该编码是否是有效的国际标准书号。
输入格式:输入第一行给出正整数N(≤10)是输入的ISBN-10图书编号的个数。随后N行,每行给出1个10位的ISBN-10图书编号。
输出格式:按照输入的顺序每行输出1个有问题的ISBN-10编码。这里并不检验前9位是否合理,只检查前9位是否全为数字且最后1位校验码计算准确。如果所有号码都正常,则输出 All passed。
输入样例01:1 ...
【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-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-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每日分享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-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 代金券的总面值。然后按总评成绩非升序输出进入名人堂的学 ...