![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
PTA/MOOC类题 (C语言/C++)
文章平均质量分 73
个人对于一些题的一些见解
重剑DS
学的越多,越觉无知
展开
-
习题8.2 银行排队问题之单队列多窗口加VIP服务(C++)
题目链接习题8.2 银行排队问题之单队列多窗口加VIP服务 (30 分)假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。有些银行会给VIP客户以各种优惠服务,例如专门开辟VIP窗口。为了最大限度地利用资源,VIP窗口的服务机制定义为:当队列中没有VIP客户时,该窗口为普通顾客服务;当该窗口空闲并且队列中有VIP客户在等待时,排在最前面的VIP客户享受该窗口的服原创 2021-02-10 21:23:48 · 1781 阅读 · 0 评论 -
多项式A除以B(C++)--- 模拟法解题
这仍然是一道关于A/B的题,只不过A和B都换成了多项式。你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数。输入格式:输入分两行,每行给出一个非零多项式,先给出A,再给出B。每行的格式如下:N e[1] c[1] ... e[N] c[N]其中N是该多项式非零项的个数,e[i]是第i个非零项的指数,c[i]是第i个非零项的系数。各项按照指数递减的顺序给出,保证所有指数是各不相同的非负整数,所有系数是非零整数,所有整数在整型范围内。输出格式:分两行先后输出商和余,输出原创 2021-02-02 13:00:48 · 1295 阅读 · 0 评论 -
7-2 一元多项式的乘法与加法运算
设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。输入样例:4 3 4 -5 2 6 1 -2 03 5 20 -7 4 3 1输出样例:15 24 -25 22 30 2原创 2020-12-24 20:03:30 · 266 阅读 · 1 评论 -
图练习记录
7-1两点间有路径吗?(20分)对于给定的无向图以及图中的两个顶点,计算两个顶点所在的连通分量中的顶点数,并且判断这两个顶点之间是否有路径。输入格式:第一行是不超过20的正整数N,表示图有N个顶点,顶点的编号即0~N-1;接下来N行,是N*N的邻接矩阵,矩阵的元素间用空格分隔;最后一行是用空格隔开的两个顶点编号v和w输出格式:第一行输出v所在的连通分量的顶点数第二行输出w所在的连通分量的顶点数第三行,若v和w之间有路径,则输出Yes,否则输出No注意:当v和w是同..原创 2020-12-14 23:22:55 · 596 阅读 · 0 评论 -
二叉树练习记录
7-1交换二叉树中每个结点的左孩子和右孩子(20分)以二叉链表作为二叉树的存储结构,交换二叉树中每个结点的左孩子和右孩子。输入格式:输入二叉树的先序序列。提示:一棵二叉树的先序序列是一个字符串,若字符是‘#’,表示该二叉树是空树,否则该字符是相应结点的数据元素。输出格式:输出有两行:第一行是原二叉树的中序遍历序列;第二行是交换后的二叉树的中序遍历序列。输入样例:ABC##DE#G##F###输出样例:CBEGDFAAFDGEBC解题代码...原创 2020-11-30 13:41:41 · 1186 阅读 · 0 评论 -
7-26 Windows消息队列 (25分) --- 优先队列(自定义类型)解题
消息队列是Windows系统的基础。对于每个进程,系统维护一个消息队列。如果在进程中有特定事件发生,如点击鼠标、文字改变等,系统将把这个消息加到队列当中。同时,如果队列不是空的,这一进程循环地从队列中按照优先级获取消息。请注意优先级值低意味着优先级高。请编辑程序模拟消息队列,将消息加到队列中以及从队列中获取消息。输入格式:输入首先给出正整数N(≤105),随后N行,每行给出一个指令——GET或PUT,分别表示从队列中取出消息或将消息添加到队列中。如果指令是PUT,后面就有一个消息名称、以及一个原创 2020-11-19 12:49:30 · 182 阅读 · 0 评论 -
1043 输出PATest (20分)
给定一个长度不超过 104 的、仅由英文字母构成的字符串。请将字符重新调整顺序,按 PATestPATest.... 这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 PATest 的顺序打印,直到所有字符都被输出。输入格式:输入在一行中给出一个长度不超过 104 的、仅由英文字母构成的非空字符串。输出格式:在一行中按题目要求输出排序后的字符串。题目保证输出非空。输入样例:redlesPayBestPATTop原创 2020-07-04 14:51:08 · 205 阅读 · 0 评论 -
1042 字符统计 (20分)---C++解题
题目详情请编写程序,找出一段给定文字中出现最频繁的那个英文字母。输入格式:输入在一行中给出一个长度不超过 1000 的字符串。字符串由 ASCII 码表中任意可见字符及空格组成,至少包含 1 个英文字母,以回车结束(回车不算在内)。输出格式:在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔。如果有并列,则输出按字母序最小的那个字母。统计时不区分大小写,输出小写字母。输入样例:This is a simple TEST. There ARE numbers a原创 2020-07-03 11:57:30 · 400 阅读 · 2 评论 -
1041 考试座位号 (15分)---C++解题
题目详情每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。输入格式:输入第一行给出一个正整数 N(≤1000),随后 N 行,每行给出一个考生的信息:准考证号 试机座位号 考试座位号。其中准考证号由 16 位数字组成,座位从 1 到 N原创 2020-07-03 11:15:44 · 289 阅读 · 1 评论 -
1037 在霍格沃茨找零钱(C++)
题目详情如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱 P 和他实付的钱 A,你的任务是写一个程序来计算他应该被找的零钱。输入格式:输入在 1 行中分别给出 P 和 A,格式为 Galleon.Sickle.Knut,其间用 1 个空格分隔。这里 Galleon 是 [0, 107] 区间内的整数,Sickle 是 [0,原创 2020-07-01 17:09:45 · 311 阅读 · 0 评论 -
2017Final进位与借位(C++)
题目详情凤湖小学二年级的陈老师吃惊地发现班上的同学竟然可以分成三类,一类总是可以正确地完成三位整数加减法(GroupA);一类总是可以正确地完成三位整数的加法,但对于减法运算来说,总是忘记借位的处理(GroupB);剩下的人总是忘记加法的进位,也总是忘记减法的借位(GroupC)。现在请给出一次陈老师在课堂提问时,同学们会给出的回答。实现时请基于下面的基类框架class Group{public:virtual int add(int x, int y)=0;//输出加法的运算结原创 2020-05-23 08:56:32 · 3680 阅读 · 1 评论 -
两种常见的全排列形式(C++)---含DFS全排列 和 使用库函数排列
目录1.一般的全排列方式2.DFS(Depth-First-Search)---深度优先搜索 全排列方式·BFS(Breadth First Search)---宽度优先搜索以**例题**的形式来说明下两种常见的全排列方式(均使用递归版)1.一般的全排列方式题目详情编写递归函数,显示n个数字的全排列。编写主函数,输入非负整数n,调用函数显示全排列。输入格...原创 2020-04-22 20:27:15 · 1104 阅读 · 0 评论 -
找数据(C++)
题目详情编写程序,找出一个字符串中的所有数据然后加9输出(实数或整数)。例如,China Daily | Updated: 2020-04-10 08:5.9,输出:20295-11714.9单个正号或负号不算数据,但+0,-0都是数据。字符串总长度不超过200.输入格式:一个带空格的字符串。输出格式:若干行数据。输入样例:China D...原创 2020-04-15 16:21:51 · 428 阅读 · 1 评论 -
IP地址转换(C++)
一.IP地址转换1题目详情编写程序,将十进制IP地址转换为二进制IP地址。例如输入:202.117.0.20,输出:11001010011101010000000000010100输入格式:字符串形式的十进制点分IP地址。输出格式:字符串表示的32位二进制IP地址输入样例:202.117.0.20输出样例:110010100111010100000000...原创 2020-04-14 21:20:48 · 4993 阅读 · 0 评论 -
带拷贝构造函数和析构函数的矩形类(C++)
题目详情定义屏幕矩形类RECT,边和坐标轴平行,两个对角顶点坐标是其数据成员,int类型,私有;成员函数有默认构造设置所有数据成员值为0,四参数构造函数设置两个顶点坐标,拷贝构造函数,set()设置两个顶点坐标,area()计算面积,perimeter()计算周长,showinfo()显示两个顶点信息,show()显示由“*”组成的矩形(宽是矩形的宽度,高是矩形的高度),析构函数。成员函数均为公...原创 2020-04-14 13:46:26 · 994 阅读 · 0 评论 -
计算函数在指定区间的近似积分(C++)
题目详情设函数在区间[a,b]的近似积分公式为: 其中δ=(b-a)/n,n=100。编写计算函数在某区间近似积分的通用函数,积分计算使用上述公式。编写主函数,输入积分区间a,b,调用函数,计算sin(x),cos(x),sin(x)+cos(x)在[a,b]的近似积分。数据类型用...原创 2020-04-09 08:30:09 · 1142 阅读 · 0 评论 -
计算函数在某点的近似导数(C++)
题目详情设函数在x的近似导数为: ,其中δ=0.001编写计算函数在某点近似导数的通用函数。编写主函数,输入自变量x的值,调用函数名,计算sin(x),cos(x),sin(x)+cos(x)在该点的近似导数。数据类型用double。输入格式:一个实数输出格式:三个实数,用空...原创 2020-04-09 08:03:07 · 1635 阅读 · 0 评论 -
使用指针的插入排序(C++)
题目详情编写函数,使用指针对一维整型数组进行插入排序。要求函数中不出现下标运算。编写主函数,输入若干整数,以-9999为结束标志。调用函数排序,在主函数中输出。元素总个数不超过100个。输入格式:若干用空格隔开的整数,以-9999为结束标志。输出格式:用空格隔开的从小到大排序的整数,用空格隔开,末尾无空格。输入样例:20 4 3 10 34 -9999...原创 2020-04-08 20:42:12 · 1728 阅读 · 0 评论 -
指针实现向量的内积计算(C++)
题目详情两个向量a = [a1, a2,…, an]和b = [b1, b2,…, bn]的内积定义为:a·b=a1*b1+a2*b2+……+an*bn编写函数,使用指针实现两个向量的内积的计算。要求函数中不出现下标运算。编写主函数,分别输入两个向量,均以-9999为结束标志,维数相同。调用函数计算内积,在主函数中输出。向量为实数向量,维数不超过100。输入格式:两行...原创 2020-04-08 19:47:17 · 6329 阅读 · 0 评论 -
自然数的拆分(C++)
题目详情给定自然数n,将其表示为若干自然数的和,输出所有的解。每组解从小到大排列。数字相同的不同排列算一组解。输入格式:一个自然数。输出格式:拆分式,每行一个。输入样例:4输出样例:4=1+1+1+14=1+1+24=1+34=2+24=4下面代码#include <iostream>using namespace std;void REsplit(in...原创 2020-04-05 09:44:06 · 3297 阅读 · 0 评论 -
递归构造可重复字符串(C++)
题目详情编写函数,使用递归的方法,递归地构造从顺序的m个字母中抽取n个字母组成的所有字符串。编写主函数,输入整数m和n,调用函数显示构造的字符串。输入格式:两个整数,分别表示字符数和字符串的长度,用空格隔开。数据均小于10。输出格式:构造的字符串,每行一个,末尾无空格。输入样例:4 3输出样例:AAAAABAACAADABAABBABCABDACAACBACC...原创 2020-04-05 08:29:34 · 974 阅读 · 0 评论 -
递归求两个数的最大公因数(C++)
题目详情编写函数,递归求两个整数的最大公因数。编写主函数,输入两个整数,调用函数求最大公因数,在主函数中输出。输入:两个正整数。输出:一个整数。输入样例:24 42输出样例: 6下面代码#include <iostream>using namespace std;int gcd(int p,int q) //辗转相除法求最大公因数---递归版 { if...原创 2020-04-04 12:59:53 · 3120 阅读 · 1 评论 -
递归插入排序(C++)
题目详情编写函数,对整型数组进行递归插入排序。编写函数,输入、输出数组元素。编写主函数,调用函数输入、排序、输出元素。整数个数不超过100个。输入:在一行或多行中输入若干用空隔开的整数,输入-9999表示结束。输出:在一行中输出整数,用一个空格隔开,末尾无空格。输入样例:3 2 1 5 4 -9999输出样例:1 2 3 4 5个人思路见图下面代码在这里插入代码片...原创 2020-04-04 10:41:09 · 1194 阅读 · 0 评论 -
十进制点分IP转换为32位二进制IP(C++)
题目详情编写程序,将十进制点分的IP转换为32位二进制IP地址。程序要能验证输入的十进制点分IP地址的合法性。用户输入的IP不和法时,输出"data error"。请使用模块化程序设计的思想,将功能模块编写成函数。通过指针传递参数,操作数据,返回结果。在主函数中输入IP地址,调用函数进行合法性验证和转换,在主函数中输出32位二进制IP。输入格式:十进制点分IP地址(英文句点)输出格式:......原创 2020-04-02 08:48:35 · 4128 阅读 · 0 评论 -
识别数字(C++)
题目详情编写函数,输出字符串中的所有整数。要考虑正、负数。编写主函数,输入带空格的字符串,调用函数输出其中的整数。输入格式:一行,表示一个句子,中间可能有空格,有若干整数。输出格式:一行,若干整数,用一个空格隔开,末尾无空格。输入样例:CHINA DAILY | Updated: 2020-03-21 07:57输出样例:2020 -3 -21 7 57注意:单独符号不算数字,但-0...原创 2020-03-26 13:12:48 · 2413 阅读 · 0 评论 -
交换两个元素值的重载函数(C++)
题目详情编写交换两个元素值的重载函数,两个元素会是两个整数、两个实数、两个整型数组、两个char型字符串。编写主函数,定义有关变量、数组,输入数据,调用函数,输出交换结果。数组元素不超过100。主函数如下(其中print(是前面编写的显示数组元素的函数):输入:5行;分别是两整数,两实数,数组1,数组2,两个字符串。见样例输入。其中数组行的第1个数是元素个数。输出:5行,交换的结果,见样例...原创 2020-03-19 13:48:30 · 2224 阅读 · 0 评论 -
递归逆序数组元素(C++)
题目详情编写递归函数,将数组元素逆序,函数的输入参数是数组、起始下标和元素个数。在主函数中输入元素个数和数组元素,调用函数逆序,在主函数中输出结果。设数组类型为整型,元素不超过100个。输入:元素个数n和n个元素,用空格或换行隔开。输出:逆序的数组元素,用一个空格隔开,末尾无空格。【提示】本函数不需返回值。【注意】必须用递归函数实现,否则没有意义。样例1输入:51 2 3 4 5样例...原创 2020-03-19 09:52:44 · 2506 阅读 · 0 评论 -
递归求Fibonacci序列的第n项(C++)
题目详情Fibonacci(费波那契)序列:f(0)=0f(1)=1f(n)=f(n-1)+f(n-2),n=2,3,4,…编写递归函数,计算Fibonacci序列的第n项(n=0,1,2,3,…)。在主函数中输入n,调用函数计算Fibonacci第n项,在主函数中输出结果。输入:非负整数输出:非负整数【注意】应用递归函数实现。样例1输入:6样例1输出:8下面代码#includ...原创 2020-03-19 09:42:05 · 1469 阅读 · 0 评论 -
递归求数组元素的和(C++)
题目详情编写递归函数,求数组元素的和,函数的输入参数为数组和元素个数,返回最大值。在主函数中输入元素个数和数组元素,调用函数求和,在主函数中输出结果。设数组类型为整型,元素不超过100个。输入:元素个数n和n个元素,用空格或换行隔开。输出:数组元素和。【提示】元素个数为0时返回和是0.样例1输入:61 2 3 4 5 6样例1输出:21下面代码 #include <ios...原创 2020-03-19 09:39:29 · 3673 阅读 · 0 评论 -
递归求数组元素的最大值(C++)
题目详情编写递归函数,求数组元素的最大值,函数的输入参数为数组和元素个数,返回最大值。在主函数中输入元素个数和数组元素,调用函数求最大值,在主函数中输出结果。设数组类型为整型,元素不超过100个。输入:元素个数n和n个元素,用空格或换行隔开。输出:数组元素最大值。【注意】使用递归,否则没有意义。样例1输入:612 1 2 3 14 6样例1输出:14下面代码#include &...原创 2020-03-19 09:33:51 · 2867 阅读 · 0 评论 -
递归计算1+2+3+…+n(C++)
题目详情题目内容:编写递归函数,计算1+2+3+…+n。在主函数中输入n,调用函数计算1到n的和,在主函数中输出和。输入:非负整数。输出:非负整数。【注意】应用递归函数实现,否则没有意义。输入0时,和为0.样例1输入:10样例1输出:55代码如下#include <iostream>...原创 2020-03-19 09:29:16 · 9115 阅读 · 0 评论 -
猴子吃桃(C++)
题目详情有一天,某只猴子摘了一些桃子,当时吃了一半,又不过瘾,于是就多吃了一个。以后每天如此,到第n天想吃时,发现就只剩下一个桃子。输入n,表示到第n天剩下1个桃子,请计算第一天猴子摘的桃子数。程序运行结果如下:101534要求时间限制:2000ms内存限制:32000kb输入格式:输入一个整数n,n>0,表示到第n天剩下1个桃子。输出格式:一个整数,表示第1天摘的桃子数...原创 2020-02-25 20:50:43 · 3203 阅读 · 0 评论 -
整数分解为若干项之和(C语言)
题目详情将一个正整数N分解成几个正整数相加,可以有多种分解方法,例如7=6+1,7=5+2,7=5+1+1,…。编程求出正整数N的所有整数分解式子。要求时间限制: 800 ms内存限制: 64 MB代码长度限制: 16 K输入格式:每个输入包含一个测试用例,即正整数N (N>0&&N<=30)。输出格式:按递增顺序输出N的所有整数分解式子。递增顺序...原创 2020-02-11 22:15:58 · 13047 阅读 · 7 评论 -
Hanoi(汉诺塔)问题
相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。题目可以问下当有几个盘子需要移动几次来完成呢(加...原创 2019-12-15 19:58:46 · 874 阅读 · 0 评论 -
#函数# 阶乘(但是n要小于13)
#函数# 阶乘(但是n要小于13) //[例7.7] 用递归方法求n!#include <stdio.h> int fac(int n) { int f; if(n<0) printf("n<0,date error!"); else if(n==0||n==1) f=1; else f=fac(n-1)*n; return f;...原创 2019-12-11 14:22:11 · 469 阅读 · 0 评论 -
#函数# n!的阶乘函数(double类型)
定义的函数:double fact(int i){double result=1;int k;if(i>=2){for(k=2;k<=i;k++){result=result*k;}}return result;}例子:7-48 求组合数 (15分)本题要求编写程序,根据公式Cnm=m!(n−m)!n!算出从n个不同元素中取出m个元素(m≤...原创 2019-12-06 19:02:47 · 3340 阅读 · 1 评论 -
输出GPLT(C++)
题目详情给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT…这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。输入格式:输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。输出格式:在一行中按题目要求输出...原创 2020-03-14 16:14:49 · 397 阅读 · 0 评论 -
九宫格输入法(C++)
题目详情假设有九宫格输入法键盘布局如下:[ 1,.?! ] [ 2ABC ] [ 3DEF ][ 4GHI ] [ 5JKL ] [ 6MNO ][ 7PQRS ] [ 8TUV ] [ 9WXYZ ][ 0空 ]注意:中括号[ ]仅为了表示键盘的分隔,不是输入字符。每个中括号中,位于首位的数字字符即是键盘的按键,按一下即可输入该数字字符。多次按同一个键,则输入的字符依次循环轮...原创 2020-03-04 20:48:48 · 2531 阅读 · 0 评论 -
说反话-加强版(C++)
题目详情给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。要求时间限制: 300 ms内存限制: 64 MB代码长度限制: 16 KB输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。输出格式:每个测试用例的输出占一行,输出倒序后...原创 2020-03-04 19:27:55 · 548 阅读 · 0 评论 -
求一批整数中出现最多的个位数字(C/C++)
题目详情给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。要求时间限制: 400 ms内存限制: 64 MB代码长度限制: 16 KB输入格式:输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。输出格式:在一行中按格式“...原创 2020-03-01 20:35:59 · 1855 阅读 · 0 评论