PAT-乙级
Prime's Blog
借夜阑静处,独看天涯星
展开
-
B1011 A+B 和 C
B1011 A+B 和 C题目描述:代码描述:#include<iostream>#include<cstdio>using namespace std;int main(){ long long a,b,c,t,ans=1; cin>>t; while(t--){ cin>>a>>b>>c; if(a+b>c) printf("Case #%d: true\n",ans); else print原创 2020-10-30 15:14:47 · 114 阅读 · 0 评论 -
B1010 一元多项式求导 25分
B1010 一元多项式求导 25分题目描述:思路:①:使用while……EOF来输入②:使用数组来存储系数和指数,例如e[3]=4,代表着指数为3的X的系数为4。③:求导应从指数小的开始,如果从指数大的数求导,则指数小的数可能会被覆盖掉,例如e[3]=4,e[2]=1代表着y=4x³+x²。若从指数为3的数开始求导,即e[3]=4 ==>e[2]=12 则原本的e[2]=1会被e[2]=12给覆盖掉导致答案错误。④:输出应该从指数大的数开始。代码描述:...原创 2020-10-29 23:51:21 · 174 阅读 · 2 评论 -
B1065 A+B and C (64bit) (20分)
B1065 A+B and C -64bit 20分题目描述:思路:由于Int的范围10的九次方以内或者是32位整数,long long 的范围是10的十八次方以内或者64位整数,题目给的范围是63位整数,所以只能用longlong存放变量。又因为变量的最大值为63位整数,当两个最大值相加时完全有可能会溢出(正溢出或者负溢出),所以我们需要判断是否会溢出。在计算机组成原理中,如果两个正数之和等于负数(正溢出)或者两个负数之和等于正数(负溢出),那么就是溢出。好了,知道了这个原理后做题就方便了。代码原创 2020-10-27 11:39:23 · 119 阅读 · 0 评论 -
B1042 Shuffling Machine 20分
B1042 Shuffling Machine 20分题目描述:思路:需要4个数组,一个记录初始的位置,一个记录变换的位置,另一个记录变换后的位置,最后一个是记录字母的数组。代码描述:#include<cstdio>//#include<iostream>//using namespace std;const int N=54;char mp[5]={'S','H','C','D','J'};int start[N+1],end[N+1],next[N+1];原创 2020-10-25 20:47:06 · 156 阅读 · 0 评论 -
B1018 锤子剪刀布 20分
B1018 锤子剪刀布 20分题目描述:思路①:模拟,使用大量的if else语句一一判断,考虑到最后需要输出字典序最小的解,不妨先将三种手势按字典序排序。代码描述:#include<iostream>#include<cstdio>using namespace std;char m[3]={'B','C','J'};int main(){ int n,a1=0,b1=0,c1=0,a2=0,b2=0; int aa[3]={0},bb[3]={0};原创 2020-10-25 10:34:02 · 178 阅读 · 0 评论 -
B1012 数字分类 20分
B1012 数字分类 20分题目描述:思路:模拟,按照题目所说条件顺着写下去就好了。需要注意的是,每个变量(A1,A2,A3,A4,A5)都要有一个计数器,这样后面就可以判断了,当计数器为0时输出N,而不是当A1,A2等变量为0时输出N。代码描述:#include<cstdio>#include<iostream>using namespace std;int a1=0,a2=0,a3=0,a4=0,a5=0,n,aa4,aa2,aa1,aa5,aa3;int m原创 2020-10-24 22:23:38 · 126 阅读 · 0 评论 -
B1008 数组元素循环右移问题
B1008 数组元素循环右移问题题目描述:思路①:题目说在不允许使用另外数组的前提下,右移M个位置,实际上,答案正确与否只与结果有关,在考上可以不用管这些限制条件。我们可以把数组空间开大些,从最后一个数开始,纷纷往后移M个位置,最后再把第n+1个数赋值给第(n+1)个数输出即可。注意题目说明,1:当输出最后一个数时,不能有空格。2:题目没给出n和M的大小,不能保证m一定小于n,所以我们要对m进行m=m%n;这样就能保证m小于n了,操作方便.代码描述:#include<cstdio>原创 2020-10-24 21:35:51 · 355 阅读 · 0 评论 -
B1046 划拳
B1046 划拳题目描述:代码描述:#include<cstdio>#include<iostream>using namespace std;int main(){ int n,a,ax,b,bx,bans=0,aans=0; cin>>n; while(n--){ cin>>a>>ax>>b>>bx; if(ax==a+b&&ax==bx) continue; //放在前面原创 2020-10-24 16:54:13 · 79 阅读 · 0 评论 -
B1016 部分A+B
B1016 部分A+B题目描述:代码描述:#include<cstdio>int main(){ long long a,b,da,db,pa=0,pb=0; scanf("%lld%lld%lld%lld",&a,&da,&b,&db); while(a){ int t=a%10; if(t==da) pa=pa*10+t; a/=10; } while(b){ int t=b%10; if(t==db) pb=pb*1原创 2020-10-24 15:56:42 · 85 阅读 · 0 评论 -
B1027 打印沙漏 20分
B1027 打印沙漏 20分题目描述:思路:①:首先应该注意到,沙漏可以看成是一个倒三角和一个正三角的组合,其中三角尖是公用的。因此,我们可以先输出倒三角接着再输出正三角。②:其次我们要注意收集关键点数据,这里的关键点数据有三个。一是三角形底边的字符个数,二是每行非空格字符之前空格输出的个数,三是剩余的非空格字符个数。③:求三角形底边的字符个数:设三角形底边的非空格字符个数为x,则由其中一个正三角可知,总的非空格字符个数为:1+3+5+…+x。两个三角形则为2*(1+3+5+…+x),又因为三角原创 2020-11-15 11:50:53 · 114 阅读 · 0 评论 -
B1048 数字加密 (20分)
B1048 数字加密 (20分)一、题目描述本题要求实现一种数字加密方法。首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10、Q 代表 11、K 代表 12;对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再加 10。这里令个位为第 1 位。输入格式:输入在一行中依次给出 A 和 B,均为不超过 100 位的正整数,其间以空格分隔。输出格式:在一行中输出加密后的结原创 2020-12-02 17:57:06 · 193 阅读 · 1 评论 -
B1024 科学计数法 (20分)
B1024 科学计数法 (20分)一、题目描述科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确给出。现以科学计数法的格式给出实数 A,请编写程序按普通数字表示法输出 A,并保证所有有效位都被保留。输入格式:每个输入包含 1 个测试用例,即一个以科学计数法表示的实数 A。该数字的存储长度不超过 9999 字节,且其指数的原创 2020-12-02 12:12:07 · 188 阅读 · 0 评论 -
B1002 写出这个数 (20分)
B1002 写出这个数 (20分)一、题目描述二、思路①:由于n小于10的一百次方,已经大大的超过的long long的范围,因而使用字符串。②:把字符串的每个数字加起来得到总和,再把总和每个数位用中文拼音表示出来就好了。③:注意,这里可以把中文拼音用二维字符数组存储起来,方便输出。三、AC代码#include<bits/stdc++.h>using namespace std;char p[10][20]={"ling","yi","er","san","si","wu",原创 2020-11-30 18:37:31 · 192 阅读 · 0 评论 -
B1036 跟奥巴马一起编程 15分
B1036 跟奥巴马一起编程 15分题目描述:思路:暴力吧,感觉没啥可说的AC代码:#include<cstdio>int main(){ int n; char ch; scanf("%d %c",&n,&ch); int c=n/2; if(n%2) c++; for(int i=1;i<=c;i++){ for(int j=1;j<=n;j++){ if(i==1||i==c){ printf("%c",ch);原创 2020-11-03 01:31:08 · 108 阅读 · 0 评论 -
B1028 人口普查 20分
B1028 人口普查 20分题目描述:思路:①看到连接体信息,马上想到使用结构体,存储名字,出生年月日。②由于需要判断合法日期,需要比较年、月、日,比较的方法一致,为了方便,直接写成函数的形式,当需要比较的时候就调用函数。代码描述:#include<cstdio>struct node{ char name[10]; int year,month,day;}temp,y,l,left,right;int cot;bool cmpl(node a,node b){ i原创 2020-11-01 20:27:19 · 231 阅读 · 1 评论 -
B1004 成绩排名 20分
B1004 成绩排名 20分题目描述:思路:①:前面说信息连接体可以用结构体来做,这里也是信息连接体类的题目。②:取分数最小值和最大值一一比较并且赋值,结构体赋值。代码描述:/*#include<cstdio>#include<cstring>#include<bits/stdc++.h>using namespace std;string name1,name2,name;string num1,num2,num;int score;int原创 2020-10-30 20:36:20 · 158 阅读 · 0 评论 -
B1041 考试座位号 15分
B1041 考试座位号 15分题目描述:思路:①:出现连接体信息时,使用结构体存储就更方便些,利用结构体存储准考证号,试机座位号,考试座位号,这样就能通过试机座位号直接获取对应的准考证号和考试座位号了。②:准考证号是16位数字,因此我们要用long long(最大可到10的十八次方) 来存储准考证号。代码描述:#include<cstdio>struct node{ long long a,b,c;}e[1005];int main(){ int n,m,k; sca原创 2020-10-30 17:33:57 · 392 阅读 · 2 评论 -
B1026 程序运行时间 (15分)
b1026 程序运行时间 15分题目描述:代码描述:#include<cstdio>#include<math.h>int main(){ int c1,c2; scanf("%d%d",&c1,&c2);// int ans=round((c2-c1)/100.0); int ans=c2-c1; if(ans%100>=50) ans=ans/100+1; else ans=ans/100; printf("%原创 2020-10-30 16:19:11 · 87 阅读 · 0 评论