![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
PAT (Basic Level) Practice
PAT (Basic Level) Practice (中文) 题目详解
Super__Bb
这个作者很懒,什么都没留下…
展开
-
1050 螺旋矩阵 (25分) PAT (Basic Level) Practice 边界
在二维数组外面增加一个边界对于向右的数组,边界就是left_border——right_border对于向下的数组,边界就是up_border——down_border对于向左的数组,边界就是right_border——left_border对于向上的数组,边界就是down_border——up_border每向右移动,以up_border+1为行,列为left_border+1——right_border-1,遍历完后,将up_border++;每向下移动,以right_border-1为.原创 2020-08-24 18:38:20 · 129 阅读 · 0 评论 -
1049 数列的片段和 (20分) PAT (Basic Level) Practice
1049 数列的片段和 (20分)给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段。例如,给定数列 { 0.1, 0.2, 0.3, 0.4 },我们有 (0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) (0.2, 0.3, 0.4) (0.3) (0.3, 0.4) (0.4) 这 10 个片段。给定正整数数列,求出全部片段包含的所有的数之和。如本例中 10 个片段总和是 0.1 + 0.3 +原创 2020-08-24 17:38:54 · 135 阅读 · 0 评论 -
1048 数字加密 (20分) PAT (Basic Level) Practice
1048 数字加密 (20分)本题要求实现一种数字加密方法。首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10、Q 代表 11、K 代表 12;对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再加 10。这里令个位为第 1 位。输入格式:输入在一行中依次给出 A 和 B,均为不超过 100 位的正整数,其间以空格分隔。输出格式:在一行中输出加密后的结果。输入样例:原创 2020-08-24 17:11:48 · 91 阅读 · 0 评论 -
1047 编程团体赛 (20分) PAT (Basic Level) Practice
1047 编程团体赛 (20分)编程团体赛的规则为:每个参赛队由若干队员组成;所有队员独立比赛;参赛队的成绩为所有队员的成绩和;成绩最高的队获胜。现给定所有队员的比赛成绩,请你编写程序找出冠军队。输入格式:输入第一行给出一个正整数 N(≤10^4 ),即所有参赛队员总数。随后 N 行,每行给出一位队员的成绩,格式为:队伍编号-队员编号 成绩,其中队伍编号为 1 到 1000 的正整数,队员编号为 1 到 10 的正整数,成绩为 0 到 100 的整数。输出格式:在一行中输出冠军队的编号和总成原创 2020-08-24 17:07:06 · 104 阅读 · 0 评论 -
PAT (Basic Level) Practice 1033 旧键盘打字
#include <iostream>#include <string>using namespace std;int main(int argc, char const *argv[]){ string bad,s; bool flag; getline(cin,bad); cin >> s; if(bad.find('+')!=bad.npos) flag=true; //存在+ else原创 2020-08-17 11:16:41 · 68 阅读 · 0 评论 -
PAT (Basic Level) Practice 1031 查验身份证 (15分)
#include <iostream>#include <algorithm>#include <string>using namespace std;int main(int argc, char const *argv[]){ int N,cnt=0,sum,Z; int weight[]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}; string M="10X98765432"; string原创 2020-08-17 10:32:39 · 93 阅读 · 0 评论 -
PAT (Basic Level) Practice 1030 完美数列 (25分) 详细思路
先将数组从小到大排序,然后两个for循环,第一个for循环找最小值,第二个for循环找最大值, 然后用变量solve记录最大值和最小值之间的数列个数,但是测试点4会超时,所以得优化循环思路如下例如数列 1 5 7 8 1 4 3 2 p=5排序后 数列为:1 2 3 4 5 6 7 8然后遍历这个数列,用i指向最小值的下标,j指向最大值的下标第1次: i=0 j=0 max=1 min =1 满足 max<=min * p 记录solve=j-i+1 =1,即有1个数原创 2020-08-17 10:22:19 · 148 阅读 · 0 评论 -
PAT (Basic Level) Practice 1029 旧键盘 (20分) 详细版 & 简单版
详细版#include <iostream>#include <string>using namespace std;int main(int argc, char const *argv[]){ string correct,infect,error; cin >> correct >> infect ; for(int i=0;i<correct.length();i++) { if(infe原创 2020-08-16 17:26:58 · 91 阅读 · 0 评论 -
PAT (Basic Level) Practice 1028 人口普查 (20分)
该版本测试点4容易超时,建议对于10^5以上的数据,将cin换成scanf如果是多输出,则将cout 换成 printfpat的好多题,如果是0,也需要输出0#include <iostream>#include <string>#include <algorithm>#include <vector>using namespace std;struct peo{ string Name; string Birth;};b原创 2020-08-16 11:06:33 · 149 阅读 · 0 评论 -
PAT (Basic Level) Practice 1027 打印沙漏 详细步骤 (20分)
根据沙漏的形状 上一层与下一层相差2个字符,且沙漏是轴对称的所以我们可以按照这个规律,找出字符数最多的一层,即第一层的字符数int Max_row = 1, num = 1; while (n >= num) { Max_row += 2; num += Max_row * 2; }//Max_row 表示行的最大字符数 ,num表示沙漏的总字符数//从最中间的1个字符开始算起,只要沙漏总字符数小于n ,就加上Max_row*2个字符数,.原创 2020-08-15 20:40:21 · 212 阅读 · 0 评论 -
C / C++ 四舍五入 取整 + 保留小数
四舍五入取整1.int()//对正数四舍五入float a=1.4; int b=(int)(a+0.5); //加0.5//对负数四舍五入float a=-1.4; int b=(int)(a-0.5); //减0.52.round()float a=1.7; int b=round(a);保留小数,最后一位四舍五入 float a=1.234; //100为 10^(小数位-1) ,既使该数为1位小数 float b=round(a*100)/原创 2020-08-15 15:26:03 · 3592 阅读 · 0 评论 -
PAT (Basic Level) Practice 1026 程序运行时间 (15分)
#include <iostream>#include <stdio.h>#include <string>#include <algorithm>#include <math.h>using namespace std;int main(int argc, char const *argv[]){ double c1,c2; cin >> c1 >> c2; int h,m,s;原创 2020-08-15 15:04:22 · 86 阅读 · 0 评论 -
PAT (Basic Level) Practice 1024 科学计数法 (20分)
#include <iostream>#include <string>using namespace std;int main(int argc, char const *argv[]){ string s,num; int E_index,fre; cin >> s; E_index=s.find('E'); //E的下标 num=s.substr(3,E_index-3);原创 2020-08-13 23:35:10 · 100 阅读 · 0 评论 -
PAT (Basic Level) Practice 1023 组个最小数 (20分)
#include <iostream>#include <string>#include <algorithm>using namespace std;int main(int argc, char const *argv[]){ string s; int j,zero=0; cin >> zero; //0的个数 for(int i=1;i<10;i++) { cin >原创 2020-08-10 22:50:17 · 105 阅读 · 0 评论 -
PAT (Basic Level) Practice 022 D进制的A+B (20分)
#include <iostream>#include <string>#include <algorithm>using namespace std;string convert(int n,int radix){ string m; int k=0; do { k=n%radix; if(k>=0&&k<=9) m+=k+'0'; else原创 2020-08-10 21:40:40 · 122 阅读 · 0 评论 -
PAT (Basic Level) Practice 1020 月饼 (25分)
在计算单价时,会产生小数误差,所以所有数字类型都定义为double,否则会有测试点答案错误#include <iostream>#include <algorithm>#include <stdio.h>using namespace std;struct Goods{ double num; //库存量 double total_price; //总售价 double unit_price; //单位售价(万吨)};b原创 2020-08-08 21:14:51 · 94 阅读 · 0 评论 -
PAT (Basic Level) Practice 1032 挖掘机技术哪家强 (20分)
#include <iostream>#include <string>#include <map>using namespace std;int main(int argc, char const *argv[]){ int N,No,grade; int max_key=1,max_grade=-1; map<int,int> m; //用map存储编号和总分 cin >> N; for原创 2020-08-08 20:29:05 · 142 阅读 · 0 评论 -
PAT (Basic Level) Practice 1036 跟奥巴马一起编程 (15分)
#include <iostream>#include <string>using namespace std;int main(int argc, char const *argv[]){ int width,height; char C; cin >> width >> C; if(width%2) height=width/2+1; //宽度为偶数,行数为宽度/2+1 else原创 2020-08-08 20:11:59 · 140 阅读 · 0 评论 -
PAT (Basic Level) Practice 1019 数字黑洞 (20分)
#include <iostream>#include <string>#include <algorithm>#include <sstream>#include<functional>using namespace std;int main(int argc, char const *argv[]){ string s; string max,min; //存放递减和递增字符串 stringstr原创 2020-08-07 22:46:23 · 115 阅读 · 0 评论 -
PAT (Basic Level) Practice 1005 继续(3n+1)猜想 (25分) C++
解题思路将每一个测试用例砍掉一半后的数字用一个数组记录下来。当所有测试用例访问结束后,将测试用例的值与记录数组对比#include <iostream> #include <vector> #include <algorithm> using namespace std;bool cmp(int a,int b){ return a>b;}int main(){ int N,k; cin >> N; vector<in原创 2020-07-20 18:13:31 · 122 阅读 · 0 评论 -
PAT (Basic Level)1004 成绩排名 (20分) C / C++ 三种方法
PAT (Basic Level)1004 成绩排名 (20分) C / C++ 三种方法C语言 结构体#include <stdio.h>struct student{ char name[20]; char num[20]; int score;};int main(int argc, char *argv[]){ int i,N,max=0,min=0; scanf("%d",&N); struct student stu[N]; getchar();原创 2020-07-20 16:50:44 · 232 阅读 · 0 评论