PTA基础编程集
PTA基础编程集部分题目,c++编写
ohhTechSoon
这个作者很懒,什么都没留下…
展开
-
7-1 最大子列和问题 (20分)
给定K个整数组成的序列{ N1, N2, …, NK },“连续子列”被定义为{ Ni, Ni+1, …, Nj },其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20。现要求你编写程序,计算给定整数序列的最大子列和。本题旨在测试各种不同的算法在各种数据情况下的表现。各组测试数据特点如下:数据1:与样例等价,测试基本正确性;原创 2020-12-02 20:45:32 · 375 阅读 · 1 评论 -
PTA基础编程集7-32 说反话-加强版 (20分)
7-32 说反话-加强版 (20分)给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过500000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。 输出格式:每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。 输入样例:Hello World Here I Come输出样例:Come I Here World HelloC.原创 2020-08-29 12:47:04 · 413 阅读 · 0 评论 -
PTA基础编程集7-31 字符串循环左移 (20分)c++string
7-31 字符串循环左移 (20分)输入一个字符串和一个非负整数N,要求将字符串循环左移N次。 输入格式:输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。 输出格式:在一行中输出循环左移N次后的字符串。 输入样例:Hello World! 2输出样例:llo World!He#include<iostream>#include<string>using namespace std;int main(void){.原创 2020-08-29 12:27:53 · 201 阅读 · 0 评论 -
PTA基础编程集7-29 删除字符串中的子串 (20分)c++
7-29 删除字符串中的子串 (20分)输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。 输入格式:输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。 输出格式:在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。 输入样例:Tomcat is a male ccatat cat输出样例:Tom is a male#include<iostream>#include<strin.原创 2020-08-29 12:22:50 · 341 阅读 · 0 评论 -
PTA基础编程集 7-28 猴子选大王 (20分)
7-28 猴子选大王 (20分)一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?输入格式:输入在一行中给一个正整数N(≤1000)。 输出格式:在一行中输出当选猴王的编号。 输入样例:11输出样例:7#include<iostream>using name.原创 2020-08-29 11:32:59 · 210 阅读 · 0 评论 -
PTA基础编程集7-23 币值转换 (20分)c++
7-23 币值转换 (20分)输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式。如23108元,转换后变成“贰万叁仟壹百零捌”元。为了简化输出,用小写英文字母a-j顺序代表大写数字0-9,用S、B、Q、W、Y分别代表拾、百、仟、万、亿。于是23108元应被转换输出为“cWdQbBai”元。输入格式:输入在一行中给出一个不超过9位的非负整数。 输出格式:在一行中输出转换后的结果。注意“零”的用法必须符合中文习惯。 输入样例1:813227345输出样例1.原创 2020-08-28 17:58:12 · 791 阅读 · 0 评论 -
PTA基础编程集 7-22 龟兔赛跑 (20分)c++
7-22 龟兔赛跑 (20分)乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快?输入格式:输入在一行中给出比赛时间T(分钟)。 输出格式:在一行中输出比赛的结果:乌龟赢输出@@,兔子赢输出_,平.原创 2020-08-28 16:57:43 · 211 阅读 · 0 评论 -
PTA基础编程集7-20 打印九九口诀表 (15分)
7-20 打印九九口诀表 (15分)下面是一个完整的下三角九九口诀表:11=1 12=2 22=4 13=3 23=6 33=9 14=4 24=834=12 44=16 15=5 25=10 35=15 45=20 55=25 16=626=12 36=18 46=24 56=30 66=36 17=7 27=14 37=2147=28 57=35 67=42 77=49 18=8 28=16 38=24 .原创 2020-08-28 12:20:52 · 511 阅读 · 0 评论 -
PTA基础编程集 7-19 支票面额 (15分)
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#include<iostream>using name.原创 2020-08-28 12:14:45 · 145 阅读 · 0 评论 -
PTA基础编程集7-18 二分法求多项式单根 (20分)c++
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],.原创 2020-08-28 11:28:27 · 310 阅读 · 0 评论 -
PTA基础编程集 7-17 爬动的蠕虫 (15分)
7-17 爬动的蠕虫 (15分)一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。输入格式:输入在一行中顺序给出3个正整数N、U、D,其中D<U,N不超过100。 输出格式:在一行中输出蠕虫爬出井.原创 2020-08-28 10:46:50 · 423 阅读 · 0 评论 -
PTA基础编程集7-16 求符合给定条件的整数集 (15分)
7-16 求符合给定条件的整数集 (15分)给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。 输入格式:输入在一行中给出A。 输出格式:输出满足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行末不能有多余空格。 输入样例:2输出样例:234 235 243 245 253 254 324 325 342 345 352 354 423 425 432 435 452453 523 524 532 534 542 543#in.原创 2020-08-28 10:27:07 · 272 阅读 · 0 评论 -
PTA基础编程集 7-14 求整数段和 (15分)
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 12 3 4 5 67 8 Sum = 30#includ.原创 2020-08-27 22:11:13 · 594 阅读 · 0 评论 -
PTA基础编程集 7-7 12-24小时制 (15分)
7-7 12-24小时制 (15分)编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。 输入格式:输入在一行中给出带有中间的:符号(半角的冒号)的24小时制的时间,如12:34表示12点34分。当小时或分钟数小于10时,均没有前导的零,如5:6表示5点零6分。提示:在scanf的格式字符串中加入:,让scanf来处理这个冒号。 输出格式:在一行中输出这个时间对应的12小时制的时间,数字部分格式与输入的相同,然后跟上空格,再跟上表示上午的字符串AM或表示下午的字符串PM。如5:6.原创 2020-08-27 20:55:32 · 240 阅读 · 0 评论 -
PTA基础编程集7-1 厘米换算英尺英寸 (15分)
7-1 厘米换算英尺英寸 (15分)如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。输入格式:输入在一行中给出1个正整数,单位是厘米。 输出格式:在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。 输入样例:170输出样例:5 6#include<iostream>//①cm不要换算成m,因为cm/1.原创 2020-08-27 18:30:02 · 352 阅读 · 0 评论 -
PTA基础编程集7-2 然后是几点 (15分)
7-2 然后是几点 (15分)有时候人们用四位数字表示一个时间,比如1106表示11点零6分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,即5点30分表示为530。注意,第二个数字表示的分钟数可能超过60,也可能是负数。输入格式:输入在一行中给出2个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意.原创 2020-08-27 18:29:02 · 290 阅读 · 0 评论 -
PTA基础编程集7-3 逆序的三位数 (10分)
7-3 逆序的三位数 (10分)程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。输入格式:每个测试是一个3位的正整数。 输出格式:输出按位逆序的数。 输入样例:123输出样例:321#include<iostream>//这道题的本意就是将权值倒过来using namespace std;int main(void){ int x; cin>>x; ..原创 2020-08-27 18:27:58 · 431 阅读 · 0 评论 -
PTA基础编程题目集7-4 BCD解密 (10分)
7-4 BCD解密 (10分)BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,然后再转换回12。 输入格式:输入在一行中给出一个[0, 153]范围内的正整数,保证能转换回有效的BCD数,也就是说这个整数转.原创 2020-08-27 18:25:08 · 702 阅读 · 0 评论 -
PTA7-26 单词长度 (15分)c++
题目:你的程序要读入一行文本,其中以空格分隔为若干个单词,以.结束。你要输出每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如it’s算一个单词,长度为4。注意,行中可能出现连续的空格;最后的.不计算在内。输入格式:输入在一行中给出一行文本,以.结束提示:用scanf("%c",…);来读入一个字符,直到读到.为止。输出格式:在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。代码:#include<iostream>using nam原创 2020-07-05 18:53:31 · 786 阅读 · 1 评论 -
PTA-螺旋方阵-C语言
`#include<stdio.h>int main(void){int count,n;scanf("%d",&n);int a[10][10];count=1;for(int i=0;i<(n+1)/2;i++){ for(int j=i;j<n-i;j++) { a[i][j]=count; co...原创 2020-03-09 21:26:10 · 1209 阅读 · 0 评论 -
PTA C语言·找鞍点
解法:#include<stdio.h>int main(){ int i,j,n,s[6][6],a[6],b[6]; scanf("%d",&n); for(i=0;i<n;i++) { for(j=0;j<n;j++) scanf("%d",&s[i][j]); } ...原创 2020-02-25 20:40:26 · 2314 阅读 · 3 评论