![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
PAT (Basic Level) Practice
文章平均质量分 55
moleet
好想摸
展开
-
PAT (Basic Level) 1030 完美数列 (25 point(s))
#include <bits/stdc++.h>using namespace std;int main() { long long n, p, result; cin >> n >> p; vector<long long> num; for(int i = 0; i < n; i++) { int tmp; cin >> tmp; num.push_back(tmp); } sort(begin(num).原创 2021-08-25 20:24:21 · 89 阅读 · 0 评论 -
PAT (Basic Level) 1029 旧键盘 (20 point(s))
#include <bits/stdc++.h>using namespace std;int main() { string input, autual; map<char, int> existed; // 读取输入和实际文字 cin >> input >> autual; // 将小写字母转换成大写字母 for(int i = 0; i < input.size(); i++) input[i] = toupper(in.原创 2021-08-25 18:41:29 · 97 阅读 · 0 评论 -
PAT (Basic Level) 1028 人口普查 (20 point(s))
// 正确代码#include <bits/stdc++.h>using namespace std;int main() { int N, cnt = 0; map<string, string> birth; cin >> N; // 分割日期中间的分隔符 // 超过两百岁不读取 小于等于 1814/09/06 while(N--){ string name, date; cin >> name >> date.原创 2021-08-25 17:16:55 · 114 阅读 · 0 评论 -
PAT (Basic Level) 1017 A除以B (20 point(s))
#include <bits/stdc++.h>using namespace std;int main() { string A; int B, Q, R; cin >> A >> B; // 第一位没有上一位直接 / 并得到余数为当前位剩余 // 当只有一位A时也直接输出 if((A[0] - '0') > B || A.size() == 1){ // 得到当前位结果并输出 Q = (A[0] - '0') / B; A[0.原创 2021-08-19 17:57:15 · 70 阅读 · 0 评论 -
PAT (Basic Level) 1027 打印沙漏 (20 point(s))
#include <iostream>#include <cmath>using namespace std;int main() { int n, line = 0; char c; cin >> n >> c; // 判断多一行时是否符号数大于n 否则递增line while (n >= 2 * pow(line + 1, 2) - 1) { line++; } // 从第一行开始 for (int i = 1.原创 2021-09-13 13:28:03 · 296 阅读 · 0 评论 -
PAT (Basic Level) 1026 程序运行时间 (15 point(s))
// 14分代码#include <bits/stdc++.h>using namespace std;int main() { int hh, mm, ss, C1, C2; // 读取C1 C2 cin >> C1 >> C2; ss = (C2 - C1) / 100; //转换为 hh mm mm = ss / 60; hh = mm / 60; mm %= 60; // 算出ss 0.5秒以上+ 1 否则向下取整 .原创 2021-09-13 13:27:39 · 101 阅读 · 0 评论 -
PAT (Basic Level) 1025 反转链表 (25 point(s))
// 正确代码#include <bits/stdc++.h>using namespace std;int Link[100000];int main() { int Head, N, K, Address, count = 0; cin >> Head >> N >> K; map<int, int>Data, Next; while (N--) { cin >> Address; // 以A.原创 2021-09-13 13:27:02 · 114 阅读 · 0 评论 -
PAT (Basic Level) 1024 科学计数法 (20 point(s))
#include <bits/stdc++.h>using namespace std;int main() { string str, num; cin >> str; // 读取正负符号 if(str[0] == '-') cout << '-'; int i = 1; // 读取E前数字(含小数点 while(1){ // 读取到E if(str[++i] == 'E') break; } num = st.原创 2021-09-13 13:26:35 · 151 阅读 · 1 评论 -
PAT (Basic Level) 1023 组个最小数 (20 point(s))
// 未精简#include <bits/stdc++.h>using namespace std;int main() { int n; map <int, int> number; // 输入 0->9 数字i 用map存放数字数量 for(int i = 0; i <= 9; i++){ cin >> n; number[i] = n; } // cout <.原创 2021-08-19 22:42:57 · 79 阅读 · 0 评论 -
PAT (Basic Level) 1022 D进制的A+B (20 point(s))
#include <bits/stdc++.h>using namespace std;int main() { // 输入A、B、D得到十进制结果C int A, B, D, C; cin >> A >> B >> D; C = A + B; string ans; // 除基取余法 十进制转换为D进制 向高位插入余数 do{ ans.insert(0, 1, C % D + '.原创 2021-08-19 22:02:41 · 78 阅读 · 0 评论 -
PAT (Basic Level) 1019 数字黑洞 (20 point(s))
// 15分代码#include <bits/stdc++.h>using namespace std;bool cmp(int a, int b){return a > b;}int to_int(int a[]){ int ans = 0; for(int i = 0; i < 4; i++) ans = ans * 10 + a[i]; return ans;}int main() { int first[4].原创 2021-08-18 11:44:35 · 95 阅读 · 0 评论 -
PAT (Basic Level) 1018 锤子剪刀布 (20 point(s))
#include <bits/stdc++.h>using namespace std;// 转换字符为数字int change(char x){ if(x == 'B') return 0; if(x == 'C') return 1; if(x == 'J') return 2;} int main() { int n, k1, k2, draw = 0, winA[2]{0}, winB[2]{0}, handA[3]{0}, handB[3]{0}; ch...原创 2021-08-19 23:53:51 · 98 阅读 · 0 评论 -
PAT (Basic Level) 1016 部分A+B (15 point(s))
#include <bits/stdc++.h>using namespace std;int main(){ long long A, B; int Da, Db, Pa = 0, Pb = 0; cin >> A >> Da >> B >> Db; do{ if(A % 10 == Da) Pa = Pa * 10 + Da; A /= 10; .原创 2021-08-18 18:50:31 · 68 阅读 · 0 评论 -
PAT (Basic Level) 1015 德才论 (25 point(s))
#include <bits/stdc++.h>using namespace std;struct Student{ int id, de, cai, sum, level; // 重载 内部排序 bool operator < (Student s) const{ // 分类从高到低排序 if(level != s.level) return level < s.level; // 总分相同时德分降序 else if(sum != s.s.原创 2021-08-19 17:08:05 · 140 阅读 · 0 评论 -
PAT (Basic Level) 1014 福尔摩斯的约会 (20 point(s))
#include <bits/stdc++.h>using namespace std;int main() { // 星期字符串 string week[7] = {"MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"}; string str[5]; cin >> str[1] >> str[2] >> str[3] >> str[4]; int first.原创 2021-08-19 15:46:13 · 91 阅读 · 0 评论 -
PAT (Basic Level) 1013 数素数 (20 point(s))
#include <bits/stdc++.h>#define MANX 1000001using namespace std;// 判断素数bool isPrime(int n){ for(int k = 2; k <= (int)sqrt(n); k++) if(n % k == 0) return false; return true;}int main() { int m, n, cnt = 0, p.原创 2021-08-19 15:04:43 · 90 阅读 · 0 评论 -
PAT (Basic Level) 1012 数字分类 (20 point(s))
#include <bits/stdc++.h>using namespace std;int main() { int n, x, space = 0; queue<int> A[6]; cin >> n; // +1以实际序号储存 读取Ai时方便对应编号 while(cin >> x) A[x % 5 + 1].push(x); for(int i = 1; i <= 5; i...原创 2021-08-16 21:24:30 · 99 阅读 · 0 评论 -
PAT (Basic Level) 1021 个位数统计 (15 point(s))
// 正确代码#include <bits/stdc++.h>using namespace std;int main() { string num; map<char, int> cnt; cin >> num; for(int i = 0; i < num.size(); i++){ cnt[num[i]]++; } for (auto it : cnt) cout << it.first &.原创 2021-08-19 20:44:00 · 81 阅读 · 0 评论 -
PAT (Basic Level) 1011 A+B 和 C (15 point(s))
给定区间 [−231,231] 内的 3 个整数A、B和C,请判断A+B是否大于C。输入格式:输入第 1 行给出正整数T(≤10),是测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数间以空格分隔。输出格式:对每组测试用例,在一行中输出Case #X: true如果A+B>C,否则输出Case #X: false,其中X是测试用例的编号(从 1 开始)。输入样例:41 2 32 3 42147483647 ...原创 2021-08-13 23:09:05 · 79 阅读 · 0 评论