
PTA
文章平均质量分 56
日常刷题,日常总结
Gettler•Main
我与我周旋久,宁作我!
展开
-
数据结构与算法 基础实验
数据结构与算法基础实验大合集实验一 线性表的创建、销毁、插入、删除、遍历等操作的实现:两个有序链表序列的合并一、 题目二、 解题思路三、 程序设计四、 程序详解及运行结果五、 问题及解决过程实验二 队列类的实现与测试 :银行业务队列简单模拟一、 题目二、 解题思路三、 程序设计四、 程序详解及运行结果五、 问题及解决过程实验三 栈与队列的应用 :迷宫寻路一、 题目二、 解题思路三、 程序设计四、 程序详解及运行结果五、 问题及解决过程实验四 树的存储结构 :树的遍历一、 题目二、 解题思路三、 程序设原创 2020-12-31 10:06:12 · 5189 阅读 · 37 评论 -
pta 数据结构 线性表习题
学习使我快乐判断题选择题函数题判断题1-1 对于顺序存储的长度为N的线性表,访问结点和增加结点的时间复杂度分别对应为O(1)和O(N)。 T F1-2 若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用顺序表存储最节省时间。 T F1-3 对于顺序存储的长度为N的线性表,删除第一个元素和插入最后一个元素的时间复杂度分别对应为O(1)和O(N)。 T F1-4 若用链表来表示一个线性表,则表中元素的地址一定是连续的。 T F原创 2020-11-19 16:22:55 · 17374 阅读 · 7 评论 -
PTA 天梯赛 L1-008 求整数段和 (第二个测试点解坑)
L1-008 求整数段和 (10分)给定两个整数A和B,输出从A到B的所有整数以及这些数的和。输入格式:输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。输出格式:首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X。输入样例:-3 8输出样例: -3 -2 -1 0 1 2 3 4 5 6 7 8Sum原创 2020-09-04 21:31:37 · 1833 阅读 · 2 评论 -
vector PTA 7-6 求整数序列中出现次数最多的数
7-6 求整数序列中出现次数最多的数 (15分)本题要求统计一个整型序列中出现次数最多的整数及其出现次数。输入格式:输入在一行中给出序列中整数个数N(0<N≤1000),以及N个整数。数字间以空格分隔。输出格式:在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题目保证这样的数字是唯一的。输入样例:10 3 2 -1 5 3 4 3 0 3 2输出样例:3 4思路:本来想用类似桶排序的思路,结果发现样例中有符数。。。。难受,最后用了包含两个变量的结构体vector原创 2020-06-04 12:26:29 · 858 阅读 · 1 评论 -
c++保留精度位 PTA 7-13 判断是否能构成三角形
7-13 判断是否能构成三角形 (20分)输入三个正数,判断是否能够构成三角形;如果不能构成三角形则输出:Error;如果能够构成三角形则输入:三角形的面积;输入格式:输入三行,每行一个正数输出格式:一行计算结果输入样例:0.30.40.5输出样例:0.06坑:挺简单的题,一个点一直过不去,最后问了大佬才知道,c++做这个题要调整精度位,保留十五位精度。。。。。。代码:#include <bits/stdc++.h>using namespace std;b原创 2020-06-04 12:26:08 · 871 阅读 · 1 评论 -
vector二维数组 PTA 7-4 找鞍点
7-4 找鞍点 (20分)一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。本题要求编写程序,求一个给定的n阶方阵的鞍点。输入格式:输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。输出格式:输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。输入样例1:41 7 4 14 8 3 61 6 1 20 7 8 9输出样例1:2 1原创 2020-06-03 14:04:43 · 670 阅读 · 1 评论 -
vector PTA 7-10 宿舍谁最高?
7-10 宿舍谁最高? (20分)学校选拔篮球队员,每间宿舍最多有4个人。现给出宿舍列表,请找出每个宿舍最高的同学。定义一个学生类Student,有身高height,体重weight等。输入格式:首先输入一个整型数n (1<=n<=1000000),表示n位同学。紧跟着n行输入,每一行格式为:宿舍号,name,height,weight。宿舍号的区间为[0,999999], name 由字母组成,长度小于16,height,weight为正整数。输出格式:按宿舍号从小到大排序,输出原创 2020-06-02 20:19:14 · 922 阅读 · 0 评论 -
以EOF结束输入 PTA 7-12 排序(数组)
7-12 排序(数组) (5分)输入若干整数到一个数组中,把它从小到大排序后输出。输入格式:输入若干整数,用EOF结束。输出格式:排序后的数组数与数间用一个空格隔开。输入样例:3 5 7 7 2 1 6输出样例:1 2 3 5 6 7 7 思路:唯一的难点就是怎么以EOF结束了while(cin>>x>>y){}while(scanf("%d %d",&x,&y)){}但是对于这个题,如果输入一个数,以上两种方法肯定会出错 对原创 2020-06-02 09:48:56 · 2984 阅读 · 0 评论 -
vector PTA 7-8 计算平均成绩
7-8 计算平均成绩 (15分)给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和成绩([0,100]区间内的整数),要求计算他们的平均成绩,并顺序输出平均线以下的学生名单。输入格式:输入在一行中给出正整数N(≤10)。随后N行,每行给出一位学生的信息,格式为“学号 姓名 成绩”,中间以空格分隔。输出格式:首先在一行中输出平均成绩,保留2位小数。然后按照输入顺序,每行输出一位平均线以下的学生的姓名和学号,间隔一个空格。输入样例:50原创 2020-06-01 10:38:59 · 939 阅读 · 0 评论 -
vector PTA 7-7 计算职工工资
7-7 计算职工工资 (15分)给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。输入格式:输入在一行中给出正整数N。随后N行,每行给出一位职员的信息,格式为“姓名 基本工资 浮动工资 支出”,中间以空格分隔。其中“姓名”为长度小于10的不包含空白字符的非空字符串,其他输入、输出保证在单精度范围内。输出格式:按照输入顺序,每行输出一位职员的姓名和实发工资,间隔一个空格,工资保留2位小数。输入样例:3zh原创 2020-06-01 10:38:28 · 730 阅读 · 0 评论 -
PTA 7-7 字符串逆序
7-7 字符串逆序 (20分)输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。输入格式:输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。输出格式:在一行中输出逆序后的字符串。输入样例:Hello World!输出样例:!dlroW olleH思路:偷个懒直接用reserve方法直接逆序遍历输出字符串代码 1:#include <iostream>#include <string>#include <algori原创 2020-05-31 18:58:14 · 3027 阅读 · 1 评论 -
vector PTA 7-11 通讯录的录入与显示
7-11 通讯录的录入与显示 (10分)通讯录中的一条记录包含下述基本信息:朋友的姓名、出生日期、性别、固定电话号码、移动电话号码。 本题要求编写程序,录入N条记录,并且根据要求显示任意某条记录。输入格式:输入在第一行给出正整数N(≤10);随后N行,每行按照格式姓名 生日 性别 固话 手机给出一条记录。其中姓名是不超过10个字符、不包含空格的非空字符串;生日按yyyy/mm/dd的格式给出年月日;性别用M表示“男”、F表示“女”;固话和手机均为不超过15位的连续数字,前面有可能出现+。在通讯录记录原创 2020-05-31 18:43:02 · 526 阅读 · 1 评论 -
字符串字符数组 PTA 7-10 古风排版
7-10 古风排版 (20分)中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。输入格式:输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。输出格式:按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)。输入样例:4This is a test case输出样例:asa Tst ihe tsi ce s思路:根据N想象排列好的字符矩阵,注意最后字符不够要原创 2020-05-29 21:28:59 · 539 阅读 · 1 评论 -
PTA 7-5 螺旋方阵
7-5 螺旋方阵 (20分)所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。输入格式:输入在一行中给出一个正整数N(<10)。输出格式:输出N×N的螺旋方阵。每行N个数字,每个数字占3位。输入样例:5输出样例:1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9思路:每行每列的原创 2020-05-29 21:09:33 · 1639 阅读 · 1 评论 -
冒泡排序 PTA 7-5 英文单词排序
7-5 英文单词排序 (25分)本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。输入格式:输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。输出格式:输出为排序后的结果,每个单词后面都额外输出一个空格。输入样例:blueredyellowgreenpurple#输出样例:red blue green yellow purple 思路原创 2020-05-28 15:35:08 · 3909 阅读 · 1 评论 -
PTA竞速 7-4 哥德巴赫猜想
7-4 哥德巴赫猜想 (10分)“这是我和其他选手比谁过题过得更快的游戏”对于任何大于或等于4的偶数n,存在至少一对素数p1和p2,使得n = p1 + p2没有人确定这个猜想是否真的成立。然而,对于给定的偶数,可以找到这样的一对素数(如果有的话)。这里的问题是编写一个程序,打印出满足给定偶数的猜想条件的所有素数对数。一个偶数序列作为输入。可以有很多这样的数字。对应于每个数字,程序应输出上述对的数量。请注意,我们只统计不同的数对,因此不应将(p1,p2)和(p2,p1)分别计为两对不同的对。输原创 2020-05-27 11:05:56 · 15954 阅读 · 9 评论 -
PTA 7-2 电文环形解密
7-2 电文环形解密 (10分)将26个英文字母按顺时针方向排成一个圆环。密钥是一个整数。加密的方法:若密钥 key≥0,则从明文字母开始按顺时针方向走 ∣key∣ 步得到密文字母;若密钥 key<0,则从明文字母开始按逆时针方向走 ∣key∣ 步得到密文字母。请编写解密程序,输入密钥(任意整数)和密文电文(含大、小写字母,数字和其他符号),对电文中的大、小写字母进行解密,并输出明文电文。输入格式密钥(任意整数)密文电文(以回车结束)输出格式明文电文(以回车结束)输入样例12原创 2020-05-28 15:34:29 · 10432 阅读 · 1 评论 -
快排 PTA 7-7 把字符串中的所有字符按从小到大的顺序排序
7-7 把字符串中的所有字符按从小到大的顺序排序 (10分)输入一个字符串,把字符按从小到大的顺序排序后输出。输入格式:输入一个长度不超过20的字符串。输出格式:把字符按从小到大的顺序排序后输出。输入样例:defgacb输出样例:abcdefg思路:题目很简单,无非就是排序,直接用sort方法就能解决,最近刚学快排,也写了一个快排的方法,代码如下sort方法:#include <bits/stdc++.h>using namespace std;int main原创 2020-05-26 12:03:16 · 5557 阅读 · 1 评论 -
进制转换 PTA 7-6 IP地址转换
7-6 IP地址转换 (20分)一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。输入格式:输入在一行中给出32位二进制字符串。输出格式:在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数),中间用“.”分隔开。输入样例:11001100100101000001010101110010输出样例:204.148.21.114思路 :按部就班的一位位转换进制代码:#inclu原创 2020-05-26 08:53:34 · 2707 阅读 · 1 评论 -
双指针 PTA 天梯赛 L1-056 猜数字
L1-056 猜数字 (20分)一群人坐在一起,每人猜一个 100 以内的数,谁的数字最接近大家平均数的一半就赢。本题就要求你找出其中的赢家。输入格式:输入在第一行给出一个正整数N(≤10^4)。随后 N 行,每行给出一个玩家的名字(由不超过8个英文字母组成的字符串)和其猜的正整数(≤ 100)。输出格式:在一行中顺序输出:大家平均数的一半(只输出整数部分)、赢家的名字,其间以空格分隔。题目保证赢家是唯一的。输入样例:7Bob 35Amy 28James 98Alice 11J原创 2020-05-25 20:43:44 · 425 阅读 · 1 评论 -
解坑 PTA 7-17 查找指定字符
7-17 查找指定字符 (15分)本题要求编写程序,从给定字符串中查找某指定的字符。输入格式:输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。输出格式:如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。输入样例1:mprogramming输出样例1:index = 7输入样例2:a1234输出样例2:Not Found思路:输出最大下标,所以原创 2020-05-24 17:00:53 · 1121 阅读 · 1 评论 -
模拟除法 PTA 天梯赛 L1-046 整除光棍
L1-046 整除光棍 (20分)这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除x为止。但难点在于,原创 2020-05-23 22:35:39 · 217 阅读 · 1 评论 -
二维数组填坑 PTA 天梯赛 L1-043 阅览室
L1-043 阅览室 (20分)天梯图书阅览室请你编写一个简单的图书借阅统计程序。当读者借书时,管理员输入书号并按下S键,程序开始计时;当读者还书时,管理员输入书号并按下E键,程序结束计时。书号为不超过1000的正整数。当管理员将0作为书号输入时,表示一天工作结束,你的程序应输出当天的读者借书次数和平均阅读时间。注意:由于线路偶尔会有故障,可能出现不完整的纪录,即只有S没有E,或者只有E没有S的纪录,系统应能自动忽略这种无效纪录。另外,题目保证书号是书的唯一标识,同一本书在任何时间区间内只可能被一位读原创 2020-05-22 22:52:53 · 299 阅读 · 1 评论 -
递归 PTA 天梯赛 L1-012 计算指数
L1-012 计算指数 (5分)真的没骗你,这道才是简单题 —— 对任意给定的不超过 10 的正整数 n,要求你输出 2^n 。不难吧?输入格式:输入在一行中给出一个不超过 10 的正整数 n。输出格式:在一行中按照格式 2^n = 计算结果 输出 2^n 的值。输入样例:5输出样例:2^5 = 32思路:就用递归实现叭,简简单单~代码如下:#include<iostream>#include<cstdio>using namespace st原创 2020-05-22 14:45:11 · 455 阅读 · 2 评论 -
二维数组 PTA 天梯赛 L1-030 一帮一
L1-030 一帮一 (15分)“一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当前尚未分组的学生中,将名次最靠前的学生与名次最靠后的异性学生分为一组。输入格式:输入第一行给出正偶数N(≤50),即全班学生的人数。此后N行,按照名次从高到低的顺序给出每个学生的性别(0代表女生,1代表男生)和姓名(不超过8个英文字母的非空字符串),其间以1个空格分隔。这里保证本班男女比例是1原创 2020-05-20 17:22:40 · 292 阅读 · 1 评论 -
数组 PTA 天梯赛 L1-033 出生年
L1-033 出生年 (15分)以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。”也就是说,直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的年份”这句话。输入格式:输入在一行中给出出生年份y和目标年份中不同数字的个数n,其中y在[1, 3000]之间,n可以是2、或3、或4。注意不足4位的年份要在前面补零,例如公元1年被认为是0001年,有2个不同的数字0和1。输出格式:根据输入,输原创 2020-05-20 16:15:10 · 482 阅读 · 0 评论 -
PTA 天梯赛 L2-014 列车调度
L2-014 列车调度 (25分)火车站的列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?输入格式:输入第一行给出一个整数N (2 ≤ N ≤10^5 ),下一行给出从1到N的整数序号的一个重排列。原创 2020-05-18 13:06:10 · 3744 阅读 · 1 评论 -
PTA 天梯赛 L3-013 非常弹的球
L3-013 非常弹的球 (30分)刚上高一的森森为了学好物理,买了一个“非常弹”的球。虽然说是非常弹的球,其实也就是一般的弹力球而已。森森玩了一会儿弹力球后突然想到,假如他在地上用力弹球,球最远能弹到多远去呢?他不太会,你能帮他解决吗?当然为了刚学习物理的森森,我们对环境做一些简化:假设森森是一个质点,以森森为原点设立坐标轴,则森森位于(0, 0)点。小球质量为w/100 千克(kg),重力加速度为9.8米/秒平方(m/s^2)。森森在地上用力弹球的过程可简化为球从(0, 0)点以某个森森选择的原创 2020-05-18 13:23:13 · 289 阅读 · 0 评论