基础C++程序题的基础归纳Ⅲ
1、去重排序
题目描述
ZN 想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了 N 个 1 到 1000 之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助 ZN 完成 “去重” 与“排序”的工作。
输入格式
输入数据有多组,每组测试数据有 2 行,第 1 行为 1 个正整数,表示所生成的随机数的个数:N
第 2 行有 N 个用空格隔开的正整数,为所产生的随机数。
输出格式
对于每组测试实例,输出 2 行,第 1 行为 1 个正整数 M,表示不相同的随机数的个数。第 2 行为 M 个用空格隔开的正整数,为从小到大排好序的不相同的随机数。
2、薪资问题
题目描述
编写一个程序,计算员工的周薪。薪水的计算是以小时为单位,如果在一周的时间内,员工工作的时间不超过 40 个小时,那么他 / 她的总收入等于工作时间乘以每小时的薪水。如果员工工作的时间在 40 到 50 个小时之间,那么对于前 40 个小时,仍按常规方法计算;而对于剩余的超额部分,每小时的薪水按 1.5 倍计算。如果员工工作的时间超过了 50 个小时,那么对于前 40 个小时,仍按常规方法计算;对于 40~50 个小时之间的部分,每小时的薪水按 1.5 倍计算;而对于超出 50 个小时的部分,每小时的薪水按 2 倍计算。请编写一个程序,输入员工的工作时间和每小时的薪水,然后计算并显示他 / 她应该得到的周薪。
输入格式
输入数据有多组,每组数据只有一行,包括一个整数和一个实数,分别表示工作时间和每小时薪水。
输出格式
对于每组数据,输出只有一个实数,表示周薪,保留小数点后 2 位
第1第2题:由于输入数据有多组,示例只是其中一种情况,需用while循环
3、消除字符串雷同
题目描述
编写一个程序,先输入一个字符串 str(长度不超过 20),再输入单独的一个字符 ch,然后程序会把字符串 str 当中出现的所有的 ch 字符都删掉,从而得到一个新的字符串 str2,然后把这个字符串打印出来。
输入格式
输入有两行,第一行是一个字符串(内部没有空格),第二行是一个字符。
输出格式
输出一行,表示经过处理后的字符串。
要考虑到空串的情况,若第一个字符串为空串,用cin会使第二个字符赋值给了s1,使s2无法输入,因此用getline直接读取。
4、字母转换
题目描述
先编写函数 EncryptChar, 按照下述规则将给定的字符 c 转化(加密)为新的字符:"A" 转化 "B","B" 转化为 "C",... ..."Z" 转化为 "a","a" 转化为 "b",... ..., "z" 转化为 "A",其它字符不加密。编写程序,加密给定字符串。
输入格式
输入为一行,表示转换前的字符串。
输出格式
输出仅一行,表示加密后的字符串。
思路:
除“z”转化为“A”和“Z”转化为“a”外,其他均输出输入字母的后一个,并区分大小写,所以其他可以调用isalpha函数。
5、汉诺塔问题
题目描述
法国数学家爱德华 · 卢卡斯曾编写过一个印度的古老传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的 n 片金片。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。而我们现在想知道,移动这 n 片金片,需要多少步。
给这三个宝石针分别标号为 A B C , 初始状态下所有的金片都在 A 上,目的是将 A 上的所有金片移动到 C 上。
编程设计算法,输出每一步的搬运过程。
输入格式
包含一个整数,表示金片的个数。
输出格式
输出多行,每行表示搬运一个金片的详细过程。
例如: 1 A C 。 表示将编号为 1 的金片直接从 A 移到 C(编号从1开始)
思路:
区分n=1和n>1两种情况,n=1时,金片直接从A移到C;n>1时,先把上面n-1个金片从A移到B作为过渡(递归),再把最下面一个金片从A移到C,再将B上的金片移到C(递归)。
标签:输出,归纳,基础,C++,金片,小时,字符串,格式,输入 From: https://www.cnblogs.com/xiiiiiiyuan/p/17287838.html