C++
C++11机试
LarisaQiuer
某211本科cs在读
展开
-
高效素数筛法|北航复试上机题|C++
输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。输入描述:输入有多组数据。每组一行,输入n。输出描述:输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。示例1输入100输出11 31 41 61 71题解题目(见图1)两点要求:1.筛出素数 2.个位为1素数(质数)的定义很简单,如果一个数只能被1和它本身整原创 2020-06-04 21:39:35 · 368 阅读 · 0 评论 -
92 最简真分数 北大复试
给出n个正整数,任取两个数分别作为分子和分母组成最简真分数,编程求共有几个这样的组合输入描述:每组包含n(n<=600)和n个不同的整数,整数大于1且小于等于100输出描述:每行输出最简真分数组合的个数。示例1输入73 5 7 9 11 13 1532 4 50输出172题解用GCD求最大公倍数,如果分子小于分母且GCD返回值为1,那么计数+1c++11#include<cstdio>#include<iostream>#define N原创 2020-06-01 14:40:49 · 756 阅读 · 0 评论 -
91 最小公倍数
正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。输入描述:输入两个正整数A和B。输出描述:输出A和B的最小公倍数。示例1输入5 7输出35题解最大公约数GCD a mod b的迭代最小公倍数则是ab的乘积除最大公约数c++11#include<cstdio>#include<iostream>using namespace std;int GCD(int a,int b){ if原创 2020-05-26 09:36:10 · 728 阅读 · 0 评论 -
90 最大公约数 哈工大复试
输入两个正整数,求其最大公约数。输入描述:测试数据有多组,每组输入两个正整数。输出描述:对于每组输入,请输出其最大公约数。示例1输入49 14输出7题解求最大公约数其实是一个a mod b 不断迭代的过程直到最后mod零,输出他本身于是定义函数GCDc++11#include<iostream>#include<cstdio>using namespace std;int GCD(int a,int b){ if(b==0){原创 2020-05-26 08:45:31 · 181 阅读 · 0 评论 -
82 二进制数 北邮复试
大家都知道,数据在计算机里中存储是以二进制的形式存储的。 有一天,小明学了C语言之后,他想知道一个类型为unsigned int 类型的数字,存储在计算机中的二进制串是什么样子的。 你能帮帮小明吗?并且,小明不想要二进制串中前面的没有意义的0串,即要去掉前导0。输入描述:第一行给出数字k,接下来k行表示要求的二进制串。输出描述:输出共T行。每行输出求得的二进制串。示例1输入523535262456275989835输出1011110000101111010010000001原创 2020-05-26 08:26:02 · 363 阅读 · 0 评论 -
73 Zero-complexity Transposition 上交复试 c++
You are given a sequence of integer numbers. Zero-complexity transposition of the sequence is the reverse of this sequence. Your task is to write a program that prints zero-complexity transposition of the given sequence.输入描述:For each case, the first line原创 2020-05-17 16:02:38 · 176 阅读 · 0 评论 -
64 完数与盈数 清华复试 c++
一个数如果恰好等于它的各因子(该数本身除外)子和,如:6=3+2+1,则称其为“完数”;若因子之和大于该数,则称其为“盈数”。求出2 到60 之间所有“完数”和“盈数”,并以如下形式输出: E: e1 e2 e3 …(ei 为完数) G: g1 g2 g3 …(gi 为盈数)输入描述:无输出描述:按描述要求输出(注意EG后面的冒号之后有一个空格)。题解首先定义因子数之和的计算函数,该数x%i==0时,i就是x的一个因子,因子之和就是sum+=i;再判断2-60间的数j是否等于sum,存入向量E原创 2020-05-17 10:03:24 · 295 阅读 · 0 评论 -
54 后缀子串排序 上交复试 c++
对于一个字符串,将其后缀子串进行排序,例如grain 其子串有: grain rain ain in n 然后对各子串按字典顺序排序,即: ain,grain,in,n,rain输入描述:每个案例为一行字符串。输出描述:将子串排序输出示例1输入grain输出aingraininnrain题解用s.substr(i)取出从下标i开始的字符串,每个字符串存入新数组a中,再用sort()升序c++11#include<algorithm>#include<st原创 2020-05-14 09:45:15 · 280 阅读 · 0 评论 -
53 首字母大写 北大复试 c++
对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。 在字符串中,单词之间通过空白符分隔,空白符包括:空格(’ ‘)、制表符(’\t’)、回车符(’\r’)、换行符(’\n’)。输入描述:输入一行:待处理的字符串(长度小于100)。输出描述:可能有多组测试数据,对于每组数据,输出一行:转换后的字符串。示例1输入if so, you already have a google account. you can sign in on the right.输出原创 2020-05-14 09:13:21 · 184 阅读 · 0 评论 -
53 单词替换 北大复试 c++
输入一个字符串,以回车结束(字符串长度<=100)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。输入描述:多组数据。每组数据输入包括3行, 第1行是包含多个单词的字符串 s, 第2行是待替换的单词a,(长度<=100) 第3行是a将被替换的单词b。(长度<=100) s, a, b 最前面和最后面都没有空格.输出描述:每个测试数据输出只有 1 行, 将s中所有单词a替换成b之后的字符串。示例原创 2020-05-13 07:46:13 · 509 阅读 · 0 评论 -
53 skew数 北大复试 c++
在 skew binary 表示中,第 k 位的值 x[k] 表示 x[k]×(2^(k+1)-1)。每个位上的可能数字是 0 或 1,最后面一个非零位可以是 2,例如,10120(skew) = 1×(2^5-1) + 0×(2^4-1) + 1×(2^3-1) + 2×(2^2-1) + 0×(2^1-1) = 31 + 0 + 7 + 6 + 0 = 44。前十个 skew 数是 0、1、2、10、11、12、20、100、101、以及 102。输入描述:输入包括多组数据,每组数据包含一个 ske原创 2020-05-13 06:54:07 · 264 阅读 · 0 评论 -
51 字母统计 上交复试 c++
输入一行字符串,计算其中A-Z大写字母出现的次数输入描述:案例可能有多组,每个案例输入为一行字符串。输出描述:对每个案例按A-Z的顺序输出其中大写字母出现的次数。示例1输入DFJEIWFNQLEF0395823048+_+JDLSFJDLSJFKK输出A:0B:0C:0D:3E:2F:5G:0H:0I:1J:4K:2L:3M:0N:1O:0P:0Q:1R:0S:2T:0U:0V:0W:1X:0Y:0Z:0题解和上一题一样 两个for嵌套原创 2020-05-12 08:22:56 · 153 阅读 · 0 评论 -
49 统计字符 浙大复试 c++
统计一个给定字符串中指定的字符出现的次数。输入描述:测试输入包含若干测试用例,每个测试用例包含2行,第1行为一个长度不超过5的字符串,第2行为一个长度不超过80的字符串。注意这里的字符串包含空格,即空格也可能是要求被统计的字符之一。当读到’#'时输入结束,相应的结果不要输出。输出描述:对每个测试用例,统计第1行中字符串的每个字符在第2行字符串中出现的次数,按如下格式输出:c0 n0c1 n1c2 n2…其中ci是第1行中第i个字符,ni是ci出现的次数。示例1输入ITHIS IS原创 2020-05-12 07:37:24 · 281 阅读 · 0 评论 -
48 简单密码 北大复试 c++
Julius Caesar曾经使用过一种很简单的密码。 对于明文中的每个字符,将它用它字母表中后5位对应的字符来代替,这样就得到了密文。 比如字符A用F来代替。如下是密文和明文中字符的对应关系。 密文 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 明文 V W X Y Z A B C D E F G H I J K L M N O P Q R S T U 你的任务是对给定的密文进行解密得到明文。 你需要注意的是,密文中出现的字母都是大写字母。密文中也原创 2020-05-11 08:29:41 · 465 阅读 · 0 评论 -
47 密码翻译 北大复试 c++
在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别。我们给出一种最简的的加密方法,对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,则可得到一个简单的加密字符串。输入描述:读取这一行字符串,每个字符串长度小于80个字符输出描述:对于每组数据,输出每行字符串的加密字符串。示例1输入1Hello! How are you!输出Ifmmp! Ipx bsf zpv!原创 2020-05-11 08:05:12 · 290 阅读 · 0 评论 -
45 特殊乘法 清华复试 c++
写个算法,对2个小于1000000000的输入,求结果。 特殊乘法举例:123 * 45 = 14 +15 +24 +25 +34+35输入描述:两个小于1000000000的数输出描述:输入可能有多组数据,对于每一组数据,输出Input中的两个数按照题目要求的方法进行运算后得到的结果。示例1输入123 45输出54题解当成字符串处理,for将两串字符按元素输入,再将两串字符中的元素单独相乘再相加其中要注意相乘时,str要减掉‘0’,把字符型数据转换为整型,在ACSII码表中,字符‘原创 2020-05-10 09:02:56 · 211 阅读 · 0 评论 -
40 找位置 华科复试 c++
对给定的一个字符串,找出有重复的字符,并给出其位置,如:abcaaAB12ab12 输出:a,1;a,4;a,5;a,10,b,2;b,11,1,8;1,12, 2,9;2,13。输入描述:输入包括一个由字母和数字组成的字符串,其长度不超过100。输出描述:可能有多组测试数据,对于每组数据,按照样例输出的格式将字符出现的位置标出。1、下标从0开始。2、相同的字母在一行表示出其出现过的位置。示例1输入abcaaAB12ab12输出a:0,a:3,a:4,a:9b:1,b:101:7原创 2020-05-10 08:41:08 · 227 阅读 · 0 评论 -
40 打印极值点下标 北大复试 c++
在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数, 或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。输入描述:第一行是此数组的元素个数k(4<k<80),第二行是k个整数,每两个整数之间用空格分隔。输出描述:每个案例输出为n行:每行对应于相应数组的所有极值点下标值,下标值之间用空格分隔。示例1输入1010 12 12 11 11 12 23 24 12 121512 12 122 112 222 211 222 221 76 36 31原创 2020-05-09 08:44:09 · 215 阅读 · 0 评论 -
40 找最小数 北邮复试 c++
第一行输入一个数n,1 <= n <= 1000,下面输入n行数据,每一行有两个数,分别是x y。输出一组x y,该组数据是所有数据中x最小,且在x相等的情况下y最小的。输入描述:输入有多组数据。每组输入n,然后输入n个整数对。输出描述:输出最小的整数对。示例1输入53 32 25 52 13 6输出2 1题解struct 每行xy,bool cmp排序方法,cin>>n,n–作为循环条件,输入每行struct,排序,输出第一组元素c++11#i原创 2020-05-09 08:14:37 · 175 阅读 · 0 评论 -
38 查找 北邮复试 c++
输入数组长度 n 输入数组 a[1…n] 输入查找个数m 输入查找数字b[1…m] 输出 YES or NO 查找有则YES 否则NO 。输入描述:输入有多组数据。每组输入n,然后输入n个整数,再输入m,然后再输入m个整数(1<=m,n<=100)。输出描述:如果在n个数组中输出YES否则输出NO。示例1输入51 5 2 4 332 5 6输出YESYESNO题解首先定义二分查找的函数,变量类型是布尔型,找出中间位置,如果小于关键字就舍弃左边,大原创 2020-05-09 07:50:59 · 149 阅读 · 0 评论 -
36 找x 哈工大复试 c++
输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。输入描述:测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。输出描述:对于每组输入,请输出结果。示例1输入21 30输出-1题解首先初始化一个数组a[],cin>>n,把第二行的元素存入a[],输入要查找...原创 2020-05-08 07:11:13 · 141 阅读 · 0 评论 -
36 奥运排序问题 浙大复试 c++
按要求,给国家进行排名。输入描述:有多组数据。第一行给出国家数N,要求排名的国家数M,国家号从0到N-1。第二行开始的N行给定国家或地区的奥运金牌数,奖牌数,人口数(百万)。接下来一行给出M个国家号。输出描述:排序有4种方式: 金牌总数 奖牌总数 金牌人口比例 奖牌人口比例对每个国家给出最佳排名排名方式 和 最终排名格式为: 排名:排名方式如果有相同的最终排名,则输出排名方式最...原创 2020-05-08 06:52:39 · 428 阅读 · 0 评论 -
35 小白鼠排队 北大复试 c++
N只小白鼠(1 <= N <= 100),每只鼠头上戴着一顶有颜色的帽子。现在称出每只白鼠的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色。帽子的颜色用“red”,“blue”等字符串来表示。不同的小白鼠可以戴相同颜色的帽子。白鼠的重量用整数表示。输入描述:多案例输入,每个案例的输入第一行为一个整数N,表示小白鼠的数目。下面有N行,每行是一只白鼠的信息。第一个为不大于...原创 2020-05-06 07:57:03 · 279 阅读 · 0 评论 -
35 整数奇偶排序 北大复试 c++
输入10个整数,彼此以空格分隔。重新排序以后输出(也按空格分隔),要求: 1.先输出其中的奇数,并按从大到小排列; 2.然后输出其中的偶数,并按从小到大排列。输入描述:任意排序的10个整数(0~100),彼此以空格分隔。输出描述:可能有多组测试数据,对于每组数据,按照要求排序后输出,由空格分隔。测试数据可能有很多组,请使用while(cin>>a[0]>>a[1...原创 2020-05-06 07:41:43 · 403 阅读 · 0 评论 -
32 成绩排序 清华复试 c++ sort()
输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩都按先录入排列在前的规则处理。示例:jack 70peter 96Tom 70smith 67从高到低 成绩peter 96jack 70Tom 70smith 67从低到高smith 67jack 7...原创 2020-05-05 09:08:44 · 172 阅读 · 0 评论 -
31 成绩排序 清华复试 c++
用一维数组存储学号和成绩,然后,按成绩排序输出。输入描述:输入第一行包括一个整数N(1<=N<=100),代表学生的个数。接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩。输出描述:按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来。如果学生的成绩相同,则按照学号的大小进行从小到大排序。示例1输入31 902 873 92输出2 8...原创 2020-05-05 08:48:06 · 188 阅读 · 0 评论 -
29 排序 华科大复试 C++
输入一系列整数,将其中最大的数挑出(如果有多个,则挑出一个即可),并将剩下的数进行排序,如果无剩余的数,则输出-1。输入描述:输入第一行包括1个整数N,1<=N<=1000,代表输入数据的个数。接下来的一行有N个整数。输出描述:可能有多组测试数据,对于每组数据,第一行输出一个整数,代表N个整数中的最大值,并将此值从数组中去除,将剩下的数进行排序。第二行将排序的结果输出。...原创 2020-05-04 07:04:31 · 116 阅读 · 0 评论 -
27 坠落的蚂蚁 北大复试 C++
一根长度为1米的木棒上有若干只蚂蚁在爬动。它们的速度为每秒一厘米或静止不动,方向只有两种,向左或者向右。如果两只蚂蚁碰头,则它们立即交换速度并继续爬动。三只蚂蚁碰头,则两边的蚂蚁交换速度,中间的蚂蚁仍然静止。如果它们爬到了木棒的边缘(0或100厘米处)则会从木棒上坠落下去。在某一时刻蚂蚁的位置各不相同且均在整数厘米处(即1,2,3,…99厘米),有且只有一只蚂蚁A速度为0,其他蚂蚁均在向左或向右爬...原创 2020-05-04 06:52:23 · 493 阅读 · 0 评论 -
22 Day of week 上交大复试 C++
We now use the Gregorian style of dating in Russia. The leap years are years with number divisible by 4 but not divisible by 100, or divisible by 400. For example, years 2004, 2180 and 2400 are leap. ...原创 2020-05-01 07:45:15 · 482 阅读 · 0 评论 -
27 路径打印 上交大复试
给你一串路径,譬如: a\b\c a\d\e b\cst d\ 你把这些路径中蕴含的目录结构给画出来,子目录直接列在父目录下面,并比父目录向右缩一格,就像这样: a b c d e b cst d 同一级的需要按字母顺序排列,不能乱。输入描述:每个测试案例第一行为一个正整数n(n<=10)表示有n个路径,当n为0时,测试结束,接下来有n行,每行有一个字串表示...原创 2020-05-03 19:02:47 · 311 阅读 · 0 评论 -
27 Grading 浙大复试
Grading hundreds of thousands of Graduate Entrance Exams is a hard work. It is even harder to design a process to make the results as fair as possible. One way is to assign each exam problem to 3 inde...原创 2020-05-03 17:48:01 · 114 阅读 · 0 评论 -
25 XXX定律 浙大复试
对于一个数n,如果是偶数,就把n砍掉一半;如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止。 请计算需要经过几步才能将n变到1,具体可见样例。输入描述:测试包含多个用例,每个用例包含一个整数n,当n为0 时表示输入结束。(1<=n<=10000)输出描述:对于每组测试用例请输出一个数,表示需要经过的步数,每组输出占一行。示例1输入310输出...原创 2020-05-02 10:05:09 · 682 阅读 · 0 评论 -
24 手机键盘 清华复试
按照手机键盘输入字母的方式,计算所花费的时间 如:a,b,c都在“1”键上,输入a只需要按一次,输入c需要连续按三次。 如果连续两个字符不在同一个按键上,则可直接按,如:ad需要按两下,kz需要按6下 如果连续两字符在同一个按键上,则两个按键之间需要等一段时间,如ac,在按了a之后,需要等一会儿才能按c。 现在假设每按一次需要花费一个时间段,等待时间需要花费两个时间段。 现在给出一串字符,需要计算...原创 2020-05-02 09:50:57 · 142 阅读 · 0 评论 -
22 剩下的树 清华复试
有一个长度为整数L(1<=L<=10000)的马路,可以想象成数轴上长度为L的一个线段,起点是坐标原点,在每个整数坐标点有一棵树,即在0,1,2,…,L共L+1个位置上有L+1棵树。 现在要移走一些树,移走的树的区间用一对数字表示,如 100 200表示移走从100到200之间(包括端点)所有的树。 可能有M(1<=M<=100)个区间,区间之间可能有重叠。...原创 2020-05-02 09:22:16 · 199 阅读 · 0 评论 -
22 日期差值 上交大复试
有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天输入描述:有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD输出描述:每组数据输出一行,即日期差值示例1输入2011041220110422输出11题解C++11#include<iostream>#include<stdio.h>#inclu...原创 2020-04-30 19:35:32 · 134 阅读 · 0 评论 -
20 日期累加 北理复试
设计一个程序能计算一个日期加上若干天后是什么日期。输入描述:输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。输出描述:输出m行,每行按yyyy-mm-dd的个数输出。示例1输入12008 2 3 100输出2008-05-13题解由于天数可能>365,所以循环时也要判断是否为闰年,为了使数组days的下标和和月份统一,days[0]=0 d...原创 2020-04-27 16:41:53 · 152 阅读 · 0 评论 -
18 打印日期 华科复试
给出年分m和一年中的第n天,算出第n天是几月几号。输入描述:输入包括两个整数y(1<=y<=3000),n(1<=n<=366)。输出描述:可能有多组测试数据,对于每组数据,按 yyyy-mm-dd的格式将输入中对应的日期打印出来。示例1输入2000 32000 312000 402000 602000 612001 60输出2000-01-0...原创 2020-04-26 18:48:08 · 123 阅读 · 0 评论 -
16 今年的第几天 清华复试
输入年、月、日,计算该天是本年的第几天。输入描述:包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。输出描述:输入可能有多组测试数据,对于每一组测试数据,输出一个整数,代表Input中的年、月、日对应本年的第几天。示例1输入1990 9 202000 5 1输出263122题解C++11#in...原创 2020-04-26 18:18:08 · 101 阅读 · 0 评论 -
16 Hello World for U 浙大复试
Given any string of N (>=5) characters, you are asked to form the characters into the shape of U. For example, “helloworld” can be printed as: h d e l l r lowo That is, the characters must be pr...原创 2020-04-23 15:36:47 · 138 阅读 · 0 评论 -
8 反序数 清华复试
设N是一个四位数,它的9倍恰好是其反序数(例如:1234的反序数是4321)求N的值输入描述:程序无任何输入数据。输出描述:输出题目要求的四位数,如果结果有多组,则每组结果之间以回车隔开。示例1本题无输入、题解怎么求反序数?为什么反序数只需要四次就可算出来?以1089为例,结合代码来看,step1处理千位数,step2处理百位数,以此类推C++ 11#include<...原创 2020-04-20 12:01:06 · 160 阅读 · 0 评论