
PTA
Matana111
这个作者很懒,什么都没留下…
展开
-
PTA B1026 程序运行时间
体会:基础很重要。#include<cstdio>#include<time.h>const int CLK_TCK=100;int main(){ int c1,c2; scanf("%d %d",&c1,&c2); int ans=c2-c1; if(ans%100>=50){ ans=ans/100+1;...原创 2018-09-04 21:13:13 · 585 阅读 · 0 评论 -
PTA B1028 人口普查
判断是否在合法区间,再更新最年长和最年轻的人。读入新日期来更新时,有可能同时更新最老和最年轻,不能用if ,else #include<cstdio>struct person{ char name[10]; int yy,mm,dd;}oldest,youngest,left,right,temp;bool LessEqu(person a,person b...原创 2018-09-10 22:07:53 · 476 阅读 · 0 评论 -
PTA A1042 Shuffling Machine
英文题目也看懂了厉害୧(๑•̀◡•́๑)૭思路:1.由于输出要用花色表示,且每种花色有13张牌。可以存个数组,char hs[5]={'S','H','C','D','J'},对牌排序号,1-54号, 序号hs[(k-1)/13]即为对应花色。序号(k-1)%13+1为对应花色下的牌号。2.洗牌。start[]和end[],把start[]按next[]的顺序排后,给end[]。...原创 2018-09-07 16:00:53 · 233 阅读 · 0 评论 -
PTA B1027 打印沙漏
这道题感觉好难呀,看了答案一遍都做不出来><注意:1.根据公式计算得的x可能是偶数,这种情况下必须减1.2.sqrt函数的参数必须是浮点数,因此要把系数2写成2.0,或者在参数内部乘以0.13.向下取整可以直接使用int型强制转换,也可以用math.h头文件下的floor#include<cstdio>#include<cma...原创 2018-09-23 14:29:57 · 811 阅读 · 0 评论 -
PTA A1031 Hello World for U
没看懂题目n1=n3=max{k|k<=n2 for all 3<=n2<=N}可以简化为n1=n2=k(k<=n2),对k取max可以理解为对n1与n3取max。注意:1.找规律n1==n2==n3时,才增加n1和n3.2.原来的循环赋值从1开始,我从1开始,知道为什么了,可以不用-1.#include<cstdio>#include...原创 2018-09-24 10:27:38 · 224 阅读 · 0 评论 -
PTA A1006 Sign In and Sign Out
#include<cstdio>struct sign{ char name[16]; char unlock_time[16]; char lock_time[16];}earlist,lastest;int main(){ int m; earlist.unlock_time=23:59:59; lastest.lock_time=00:00:00;...原创 2018-09-20 20:18:39 · 194 阅读 · 0 评论 -
PTA A1036 Boys vs Girls
题目看懂了(*^▽^*)#include<cstdio>using namespace std;struct student{ char name[11]; char sex[2]; char id[11]; int grade;}girl,boy,temp;int main(){ girl.grade=0; boy.grade=100; in...原创 2018-09-20 21:07:16 · 436 阅读 · 0 评论 -
PTA 1019 General Palindromic Number(进制转换,回文判断,跳双重循环)
题目读懂了(*^▽^*)先找了进制转换的方法,直接套用了。1.写循环的时候写错了,最开始写的是//错在一个i对应num个ifor(int i=0;i<num;i++){ for(int j=num;j>0;j++){ 比较z[i]和z[j] }} //不用比较这么多位//补充:测试发现不是因为位数,不除以2结果会出现错误...原创 2018-10-11 22:45:35 · 362 阅读 · 0 评论 -
PTA B1036 跟奥巴马一起编程
注意:①四舍五入:奇数+1/2,偶数/2。②输入格式 scanf("%d,&w); scanf("%c",&a); 不可以 #include<cstdio>using namespace std;int main(){ int w,h; char a; scanf("%d %c",&w,&a); ...原创 2018-09-21 23:17:17 · 843 阅读 · 0 评论 -
PTA B1022 D进制的A+B
#include<cstdio>using namespace std;int z[100];int main(){ int a,b,d; int sum; int num=0; int n; scanf("%d %d %d",&a,&b,&d); sum=a+b; do{ z[num++]=sum%d; su...原创 2018-10-06 11:11:00 · 186 阅读 · 0 评论 -
PTA A1027 Colors in Mars (10进制转换成13进制)
问题在不能用整数数组存a,b,c。由于题目数据范围是[0,168],因此一定可以表示为a*13^1+b*13^0,因为168<13^2。x/13=a,x%13=b。输出ab即可#include<cstdio>using namespace std;char radix[13]={'0','1','2','3','4','5','6','7','8','9','A...原创 2018-10-12 23:17:59 · 424 阅读 · 0 评论 -
PTA B1037 在霍格沃茨找零钱
#include<cstdio>const int Galleon=17*29;const int sickle=29;int main(){ int a1,b1,c1; int a2,b2,c2; scanf("%d.%d.%d",&a1,&b1,&c1); scanf("%d.%d.%d",&a2,&b2,&a...原创 2018-10-06 14:23:25 · 341 阅读 · 0 评论 -
PTA B1009 说反话(单词倒着输出)
#include<cstdio>int main(){ int num = 0; //单词的个数 char ans[80][80]; while(scanf("%s", ans[num]) != EOF){ //一直输入直到文件末尾 num++; //单词的个数加 1 } for(int i = ...原创 2018-10-14 23:18:25 · 1558 阅读 · 1 评论 -
PTA B1004 成绩排名
1.temp存临时数据,ans_max初始化初值101,ans_min初始化-1,方便更新。2.字符数组name和id的大小必须是11而不能是10,否则第一个数据和最后一个数据会得到“答案错误”。因为字符数组的最后一位需要留给'\n',所以数组大戏小必须比题目要求至少大1位。3.字符数组赋值scanf对字符串的输入有%s和%c两种格式。%c格式用来输入单个字符,它能够识别空格和换行符并...原创 2018-09-10 16:29:33 · 1406 阅读 · 0 评论 -
PTA B1041 考试座位号
简单题,定义结构体方法注意一下。一遍过,开心(*^▽^*) #include<cstdio>using namespace std;struct student{ long long zkz; int sj; int ks;}student[1001];int main(){ int n,m,sj1; scanf("%d",&n); for...原创 2018-09-09 22:31:42 · 581 阅读 · 0 评论 -
PTA 1009 Product of Polynomials
注意:1.答案数组开到2001,因为两个最高幂次为1000的多项式相乘,最高幂次可以达到2000。2.没必要开两个数组,第二个多项式可以边读入边处理。#include<cstdio>double a[1010];double c[2001];int main(){ int k1,k2,n,num=0; double an; scanf("%d",&a...原创 2018-09-09 22:06:53 · 349 阅读 · 0 评论 -
PTA B1046划拳
开始写的 ,第一组数答案错误。没想到逻辑哪里不对,如果甲和乙划的一样,就直接进入下一次循环。#include<cstdio>int main(){ int n; int jha,jhu,yha,yhu; int jcount=0; int ycount=0; scanf("%d",&n); while(n--){ scanf("%d...原创 2018-09-04 21:54:28 · 341 阅读 · 0 评论 -
PTA A1046 Shortest Distance
又是一道看懂题目意思的英文题,开心(*^▽^*) 开始写的,会超时。问题如下:极端情况下,每次查询都要遍历整个数组,即有10^5次操作,而共有10^4个查询,所以极端情况下会有10^9次操作,时间限时100ms,不能承受。#include<cstdio>#include<algorithm>using namespace std;int main(...原创 2018-09-07 21:27:40 · 228 阅读 · 0 评论 -
PTA A1065 A+B and C (64bit) (数据溢出)
题目看懂了。此字体颜色为不懂部分。这道题根本没思路。体会到了 基础重要性。百度了数据溢出:8+9=170 10000 1001 1 0001(正溢) (-9)+(-8)=(-17)1 01111 10000 1111(负溢)int溢出超出了int类型的最大值,如果是两个正数相加,溢出得到一个负数,或两个负数相加,溢出得到一个正数的情况,就叫溢出。负数...原创 2018-09-07 22:35:58 · 605 阅读 · 0 评论 -
PTA B1032 挖掘机技术哪家强
前前后后出现了N次错误。 出现了段错误 发现是数组开小了 。百度了一下段错误:段错误就是指访问的内存超出了系统所给这个程序的内存空间一旦一个程序发生了越界访问,cpu就会产生相应的保护,于是segmentation fault就出现了通过上面的解释,段错误应该就是访问了不可访问的内存,这个内存区要么是不存在的,要么是受到系统保护的,还有可能是缺少文件或者文件损坏。#i...原创 2018-09-02 20:51:41 · 604 阅读 · 0 评论 -
PTA B1008 数组元素循环右移问题
看题的时候也是懵,最短的时间内又要移动数组,还不能重新开。没思路。看了思路,发现不用换数组,直接输出就好了。注意:题目没说m取值,一定比N小。要把m%n。再就是结尾的格式控制。#include<cstdio>using namespace std;int main(){ int n,m; int a[110]; scanf("%d %d",&n,&...原创 2018-09-05 15:26:36 · 383 阅读 · 0 评论 -
PTA B1012 数字分类
1 .前两天做题发现if和If,if和else,代码执行效率不一样。又百度了一下else if 。也能减少运行时间。但是注意逻辑。if和else if 。if (条件一) {执行方法一}else if(条件二){执行方法二} //这个只有在条件一不满足时才会判断条件二, 若条件一满足,则这句else if直接跳过了if 和if 。if (条件一) {执行方法一}if(条件二){...原创 2018-09-05 16:42:24 · 774 阅读 · 0 评论 -
PTA A1011 World Cup Betting
没看懂题啊这道TT注意两个三行 就两个循环。#include<cstdio>char s[3]={'W','T','L'};int main(){ int idx; double a,ans=1.0; for(int i=0;i<3;i++){ double temp=0; for(int j=0;j<3;j++){ ...原创 2018-09-11 21:43:22 · 180 阅读 · 0 评论 -
PTA B1010 一元多项式求导
思路: 数组a[]用来存对应指数的系数,a[e]是指数为e项的系数。while....EOF 格式读入,试了一下不写!=EOF会运行超时。从低次项到高次项进行枚举(不能反过来)。最后从高次到低次枚举,输出非零次项系数和整数。 可以保证指数递降方式输出。 问题:不理解为什么求导部分从低次项枚举到高次项,感觉只需要输出时换成a[i]和i-2,i的输出范围为2-1002就可...原创 2018-09-08 21:45:26 · 1056 阅读 · 1 评论 -
PTA B1011 A+B 和 C
简单题 ,注意给定的区间。[-2^31, 2^31] 注意: 输出格式必须是%lld, 否则答案错误。 %d=int, %ld=long, %lld=long long;在32位编译器上,int=long=32bit;long long=64bit#include<cstdio>int main(){ int t;...原创 2018-09-03 13:11:53 · 506 阅读 · 0 评论 -
PTA B1016 部分A+B
注意:1.绝对值在10^9范围以内的整数可以定义为int型,题中是10^10,long long型2.pa=pa*10+da; 开始时pa为0,直接在个位上加#include<cstdio>using namespace std;int main(){ long long a,b; int da,db; long long pa=0; long l...原创 2018-09-03 14:16:17 · 308 阅读 · 0 评论 -
PTA A1002 A+B for Polynomials
可以定义为一个数组,大小没审好题。#include<cstdio>using namespace std;int main(){ int k1,k2; int n,count=0; float an; float a[11]={0},b[11]={0},c[11]={0}; scanf("%d",&k1); while(k1--){ ...原创 2018-09-09 16:00:17 · 262 阅读 · 0 评论 -
PTA B1018 锤子剪刀布
字母转换成数字 程序会简洁许多按字典序输出,所以排了循环数组,可以判断胜负,转换成对应数字。+1%3相等 就赢了。赢手势次数 也是数组相应位置内数字 比较注意:用getchar()吸收回车符输入格式为 %c %c 会跳过空格符#include<cstdio>int change(char c){ if(c=='B')return 0; else i...原创 2018-09-06 13:21:47 · 898 阅读 · 0 评论 -
PTA B1021 个位数统计 (拆分字符数组中整形数字,1-9数字计数,字符串长度,)
1021 个位数统计 (15 分)给定一个 k 位整数 N=dk−110k−1+⋯+d1101+d0 (0≤di≤9, i=0,⋯,k−1, dk−1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。输入格式:每个输入包含 1 个测试用例,即一个不超过 1000...原创 2018-10-18 22:05:06 · 551 阅读 · 1 评论