PTA
PTA上的练习题
起风了
计算机科学与技术学院18软件工程专业渣渣铭
目前大三,不考研,专攻Java,追求:成为全栈攻城狮。
展开
-
PTA团队程序设计天梯赛 | L1-016 查验身份证 (15分)
题目描述:一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:0 1 2 3 4 5 6 7 8 9 10M:1 0 X 9 8 7 6 5 4 3 2现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。输入格式:输入第一行给出正整数N(≤100)原创 2020-06-18 19:28:07 · 1179 阅读 · 0 评论 -
PTA——基础编程题 | 7-22 龟兔赛跑 (20分)
题目描述乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快?输入格式:输入在一行中给出比赛时间T(分钟)。输出格式:在一行中输出比赛的结果:乌龟赢输出@_@,兔子赢输出^_^,平局则输出-_-;后原创 2020-06-18 14:20:37 · 7564 阅读 · 0 评论 -
C++——STL | next_permutation讲解
next_permutation()头文件:#include <algorithm>涵义:给出一个序列在全排列中的下一个序列。例如,当n==3时的全排列位:123132213231312321这样231的下一个序列就是312。具体代码如下:#include <iostream>#include <algorithm>using namespace std;int main(){ int a[10]={1,2,3}; do{ co原创 2020-06-09 22:31:32 · 1224 阅读 · 0 评论 -
PTA——基础编程题 | 7-1 厘米换算英尺英寸 (15分)
如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。输入格式:输入在一行中给出1个正整数,单位是厘米。输出格式:在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。输入样例:170输出样例:5 6#include <cstdio>#include <iostream>using namespac原创 2020-06-07 21:31:29 · 1604 阅读 · 0 评论 -
PTA——基础编程题 | 6-13 折半查找 (15分)
给一个严格递增数列,函数int Search_Bin(SSTable T, KeyType k)用来二分地查找k在数列中的位置。函数接口定义:int Search_Bin(SSTable T, KeyType k)其中T是有序表,k是查找的值。裁判测试程序样例:#include <iostream>using namespace std;#define MAXSIZE 50typedef int KeyType;typedef struct原创 2020-06-07 21:29:57 · 2921 阅读 · 0 评论 -
PTA——基础编程题 | 7-2 然后是几点 (15分)
有时候人们用四位数字表示一个时间,比如1106表示11点零6分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,即5点30分表示为530。注意,第二个数字表示的分钟数可能超过60,也可能是负数。输入格式:输入在一行中给出2个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,原创 2020-06-07 21:25:23 · 4437 阅读 · 0 评论 -
PTA——基础编程题 | 7-15 计算圆周率 (15分)
根据下面关系式,求圆周率的值,直到最后一项的值小于给定阈值。π/2=1+1/3+2!/35+3!/357+…n!/(357…(2*n+1))+…输入格式:输入在一行中给出小于1的阈值。输出格式:在一行中输出满足阈值条件的近似圆周率,输出到小数点后6位。输入样例:0.01输出样例:3.132157思路:注意题中的“直到最后一项的值小于给定阈值”,意思是说明包括最后一项。#include <stdio.h>double jiecheng(double x){ i原创 2020-06-07 21:23:35 · 4181 阅读 · 0 评论 -
PTA——基础编程题 | 7-14 求整数段和 (15分)
给定两个整数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 = 30思路:这个题目需要注意的是原创 2020-06-07 21:19:11 · 2149 阅读 · 0 评论 -
PTA——基础编程题 | 7-16 求符合给定条件的整数集 (15分)
给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。输入格式:输入在一行中给出A。输出格式:输出满足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行末不能有多余空格。输入样例:2输出样例:234 235 243 245 253 254324 325 342 345 352 354423 425 432 435 452 453523 524 532 534 542 543#include <stdio.h>原创 2020-06-07 18:17:32 · 1973 阅读 · 0 评论 -
PTA——基础编程题 | 7-17 爬动的蠕虫 (15分)
一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。输入格式:输入在一行中顺序给出3个正整数N、U、D,其中D<U,N不超过100。输出格式:在一行中输出蠕虫爬出井的时间,以分钟为单位。输入样例:原创 2020-06-07 18:15:25 · 1559 阅读 · 0 评论 -
PTA——基础编程题 | 7-13 日K蜡烛图 (15分)
股票价格涨跌趋势,常用蜡烛图技术中的K线图来表示,分为按日的日K线、按周的周K线、按月的月K线等。以日K线为例,每天股票价格从开盘到收盘走完一天,对应一根蜡烛小图,要表示四个价格:开盘价格Open(早上刚刚开始开盘买卖成交的第1笔价格)、收盘价格Close(下午收盘时最后一笔成交的价格)、中间的最高价High和最低价Low。如果Close<Open,表示为“BW-Solid”(即“实心蓝白蜡烛”);如果Close>Open,表示为“R-Hollow”(即“空心红蜡烛”);如果Open等于Cl.原创 2020-06-07 18:12:59 · 3346 阅读 · 1 评论 -
PTA——基础编程题 | 7-20 打印九九口诀表 (15分)
下面是一个完整的下三角九九口诀表:1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8原创 2020-06-07 18:09:37 · 2421 阅读 · 0 评论 -
PTA——基础编程题 | 6-7 统计某类完全平方数 (20分)
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。函数接口定义:int IsTheNumber ( const int N );其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。裁判测试程序样例:#include <stdio.h>#include <math.h>int IsTheNumber ( const int N );int main(){ int n1, n原创 2020-06-07 18:06:33 · 1345 阅读 · 0 评论 -
PTA——基础编程题 | 6-10 阶乘计算升级版 (20分)
本题要求实现一个打印非负整数阶乘的函数。函数接口定义:void Print_Factorial ( const int N );其中N是用户传入的参数,其值不超过1000。如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印“Invalid input”。裁判测试程序样例:#include <stdio.h>void Print_Factorial ( const int N );int main(){ int N; scanf("%d", &原创 2020-06-07 18:04:14 · 1580 阅读 · 0 评论 -
PTA——基础编程题 | 7-18 二分法求多项式单根 (20分)
题目描述二分法求函数根的原理为:如果连续函数f(x)在区间[a,b]的两个端点取值异号,即f(a)f(b)<0,则它在这个区间内至少存在1个根r,即f®=0。二分法的步骤为:检查区间长度,如果小于给定阈值,则停止,输出区间中点(a+b)/2;否则如果f(a)f(b)<0,则计算中点的值f((a+b)/2);如果f((a+b)/2)正好为0,则(a+b)/2就是要求的根;否则如果f((a+b)/2)与f(a)同号,则说明根在区间[(a+b)/2,b],令a=(a+b)/2,重复循环;原创 2020-06-07 18:00:53 · 2539 阅读 · 0 评论 -
PTA——基础编程题 | 7-19 支票面额 (15分)
题目描述一个采购员去银行兑换一张y元f分的支票,结果出纳员错给了f元y分。采购员用去了n分之后才发觉有错,于是清点了余额尚有2y元2f分,问该支票面额是多少?输入格式:输入在一行中给出小于100的正整数n。输出格式:在一行中按格式y.f输出该支票的原始面额。如果无解,则输出No Solution。输入样例1:23输出样例1:25.51输入样例2:22输出样例2:No Solution思路:先将元化成分,之后可以得到一个公式200y+2f==f*100+y-n,这这个公式中只有f和原创 2020-06-07 17:49:06 · 5078 阅读 · 10 评论 -
PTA——基础编程题 | 7-27 冒泡法排序 (20分)
题目描述将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。本题要求对任意给定的K(<N),输出扫描完第K遍后的中间结果数列。输入格式:输入在第1行中给出N和K(1≤K<N≤100),在第2行中给出N个待排序的整数,数字间以空格分隔。输出格式:在一行中输出冒泡排序法原创 2020-06-07 17:43:35 · 2011 阅读 · 0 评论