PAT 乙级
我刷pat乙级的笔记和总结,主要参考《算法笔记》、《柳婼的博客》
wvdon
先做好一件事,才能做好更多事
展开
-
A1027 Colors in Mars (20分)
1027 Colors in Mars (20分)People in Mars represent the colors in their computers in a similar way as the Earth people. That is, a color is represented by a 6-digit number, where the first 2 digits are...原创 2020-04-05 16:53:10 · 114 阅读 · 0 评论 -
个位数统计
pat不支持gets了。。可以用 cin.getline()。或者string#include <iostream>using namespace std;int main(){ string s; cin >> s; int num[10]={0}; for(int i=0;i<s.length();i++){ num[s[i]-'0']+...原创 2020-04-05 18:14:10 · 239 阅读 · 0 评论 -
B1037 在霍格沃茨找零钱 (20分)
1037 在霍格沃茨找零钱 (20分)如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱 P 和他实付的钱 A,你的任务是写一个程序来计算他应该被找的零钱。输入格式:输入在 1 行中分别给出 P 和 A,格式为 Galleon.S...原创 2020-04-04 16:58:54 · 183 阅读 · 0 评论 -
B1031 查验身份证 (15分)
题目大意:权重相加然后进行比较最后一位是否正确。#include <stdio.h>using namespace std;int main(){ int n; int count=0; scanf("%d",&n); int m[17] = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}; char l[11] = {'1','0...原创 2020-04-03 23:39:06 · 322 阅读 · 0 评论 -
B1027 打印沙漏 (20分)
#include <string>#include <stdio.h>#include <iostream>using namespace std;int main(){ int n; char c; cin >> n >> c; int l; for(int i=0;i<=n+1;i++){ if((i*i*...原创 2020-04-03 22:26:09 · 173 阅读 · 0 评论 -
B1028 人口普查 (20分)
1028 人口普查 (20分)某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 年 9 月 6 日,所以超过 200 岁的生日和未出生的生日都是不合理的,应该被过滤掉。输入格式:输入在第一行给出正整数 N,取值在(0,105 ];随后 N ...原创 2020-04-01 22:43:03 · 219 阅读 · 0 评论 -
B1041 考试座位号 (15分)
1041 考试座位号 (15分)每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。输入格式:输入第一行给出一个正整数 N(≤100...原创 2020-04-01 20:52:02 · 191 阅读 · 0 评论 -
B1010 一元多项式求导 (25分)
题解:函数求导注意特判,如果只输入一个0次项。使用l记录个数。#include <stdio.h>int array1[1010]={0};int array2[1010]={0};int main(){ int a1,a2; int t=0,l=0; while(scanf("%d%d",&a1,&a2)!= EOF){ array1[t]...原创 2020-03-27 23:12:45 · 145 阅读 · 0 评论 -
B1018 锤子剪刀布 (20分)
题目:大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入格式:输入第 1 行给出正整数 N(≤10^5 ),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 ...原创 2020-03-25 20:46:52 · 482 阅读 · 0 评论 -
B1012. 数字分类 (20)
18分未过#include <iostream>#include <math.h>using namespace std;int main(){ int n; int a1=0,a2=0,a3=0,a5=0; double a4=0; int count=0; int ct=0; int ct1=0; int c2=0; cin >> n...原创 2020-03-21 20:52:22 · 122 阅读 · 0 评论 -
B1008 数组元素循环右移问题 (20分)
题目注意m的值可能大于n#include <iostream>#include <math.h>using namespace std;int main(){ int n,m; cin >> n >> m; int array[n]; for (int i=0;i<n;i++){ scanf("%d",&arr...原创 2020-03-21 16:57:18 · 306 阅读 · 0 评论 -
B1046 划拳 (15分)
题目#include <iostream>using namespace std;int main(){ int n; int count1=0,count2=0; int A,a,B,b; cin >> n; while(n--!=0){ cin >> A >> a >> B>> b; if(a==b...原创 2020-03-21 16:35:58 · 111 阅读 · 0 评论 -
B1026 程序运行时间 (15分)
题目:ceil 向上取整round 四舍五入取整#include <iostream>#include <math.h>using namespace std;int main(){ double C1,C2; cin >> C1 >> C2; int h=0,min=0; int sum=int (round((C2-C1)...原创 2020-03-21 16:24:58 · 106 阅读 · 1 评论 -
B1016 1016 部分A+B (15分)
不难#include <iostream>using namespace std;int newNumber(int A,int D){ int sum=0; int count=0; while(A!=0){ if(A%10==D){ count++; } A/=10; } for(int i=0;i<count;i++){ sum=s...原创 2020-03-21 15:52:45 · 219 阅读 · 0 评论 -
B1022 D进制的A+B (20分)
1022 D进制的A+B (20分)输入两个非负 10 进制整数 A 和 B (≤230 −1),输出 A+B 的 D (1<D≤10)进制数。输入格式:输入在一行中依次给出 3 个整数 A、B 和 D。输出格式:输出 A+B 的 D 进制数。输入样例:123 456 8输出样例:1103分析a+b的和小于 231-1 用Int就足够了求C的D进制,只需要...原创 2020-01-27 13:31:45 · 293 阅读 · 0 评论 -
B1032挖掘机技术哪家强 (20分)
1032 挖掘机技术哪家强 (20分)为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。输入格式:输入在第 1 行给出不超过 105 的正整数 N,即参赛人数。随后 N 行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从 1 开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。输出格式:在一行中...原创 2020-01-27 13:02:53 · 247 阅读 · 0 评论 -
B1013 数素数 (20分)
1013 数素数 (20分)令 Pi 表示第 i 个素数。现任给两个正整数 M≤N≤104 ,请输出 PM 到 PN 的所有素数。输入格式:输入在一行中给出 M 和 N,其间以空格分隔。输出格式:输出从 PM 到 PN 的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。输入样例:5 27...原创 2020-01-03 12:12:54 · 217 阅读 · 0 评论 -
B1005 继续(3n+1)猜想 (25分)
1005 继续(3n+1)猜想 (25分)卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n=3 进行验证的时候,我们需要计算 3、5、8、4、2、1,则当我们对 n=5、8、4、2 进行验证的时候,就可以直接判定卡拉兹猜想的真伪,而不需要重复计算,因为这 4 个数...原创 2020-01-01 11:24:01 · 151 阅读 · 0 评论 -
B1006 换个格式输出整数 (15分)
1006 换个格式输出整数 (15分)让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12…n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。输入格式:每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。输出格式:每个...原创 2019-12-31 22:22:31 · 118 阅读 · 0 评论 -
B1004 成绩排名 (20分)
1004 成绩排名 (20分)读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含 1 个测试用例,格式为第 1 行:正整数 n第 2 行:第 1 个学生的姓名 学号 成绩第 3 行:第 2 个学生的姓名 学号 成绩… … …第 n+1 行:第 n 个学生的姓名 学号 成绩其中姓名和学号均为不超过 10 个字符的字...原创 2019-12-31 22:08:15 · 95 阅读 · 0 评论 -
B1003 我要通过! (20分)
1003 我要通过! (20分)“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符;任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A...原创 2019-12-29 21:53:33 · 111 阅读 · 0 评论 -
B1002 写出这个数 (20分)
1002 写出这个数 (20分)读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100 。输出格式:在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456...原创 2019-12-29 20:41:56 · 155 阅读 · 0 评论 -
B1001 害死人不偿命的(3n+1)猜想
1001 害死人不偿命的(3n+1)猜想卡拉兹(Callatz)猜想:对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有...原创 2019-12-29 20:04:37 · 130 阅读 · 0 评论 -
PAT乙级:1020
1020 月饼 (25 分)月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么...原创 2019-05-14 11:48:00 · 156 阅读 · 0 评论 -
PAT乙级-:1022 D进制的A+B
1022 D进制的A+B (20 分)输入两个非负 10 进制整数 A 和 B (≤230 −1),输出 A+B 的 D (1<D≤10)进制数。输入格式:输入在一行中依次给出 3 个整数 A、B 和 D。输出格式:输出 A+B 的 D 进制数。输入样例:123 456 8输出样例:1103时间限制: 200 ms内存限制: 64 MBim...原创 2019-05-09 09:05:00 · 244 阅读 · 0 评论 -
PAT乙级:1009
1009 说反话 (20 分)给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。输入样例:H...原创 2019-05-09 08:23:00 · 218 阅读 · 0 评论 -
PAT乙级:1036
1036 跟奥巴马一起编程 (15 分)美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年#include <stdio.h>int main(){ int a,l; char c; scanf("%d %c",&a,&c); if(a%2==1) l = a/2+1; e...原创 2019-04-12 13:15:00 · 196 阅读 · 0 评论 -
PAT乙级:1007
解决1007 素数对猜想超时(JAVA)让我们定义d n为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。输入格式:输入在一行给出正整数N。输出格式:在一行中输出不超过N的满足猜想的素数对的个数。...原创 2019-02-08 12:54:00 · 140 阅读 · 0 评论 -
PAT乙级:1004
1004 成绩排名 (20 分)读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含 1 个测试用例,格式为第 1 行:正整数 n第 2 行:第 1 个学生的姓名 学号 成绩第 3 行:第 2 个学生的姓名 学号 成绩… … …第 n+1 行:第 n 个学生的姓名 学号 成绩其中姓名和学号均为不超过 10 ...原创 2019-02-08 10:20:00 · 130 阅读 · 0 评论 -
PAT乙级:1003
1003 我要通过! (20 分)“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符; 任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅...原创 2019-02-08 10:02:00 · 106 阅读 · 0 评论 -
PAT乙级:1002
1002 写出这个数 (20 分)读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100输出格式:在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456...原创 2019-02-07 13:21:00 · 169 阅读 · 0 评论 -
PAT乙级:1019 数字黑洞
1019 数字黑洞 (20 分)题目:给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的 6174,这个神奇的数字也叫 Kaprekar 常数。例如,我们从6767开始,将得到7766 - 6677 = 10899810 - 0189...原创 2019-08-20 22:57:52 · 134 阅读 · 0 评论 -
PAT乙级:1021 个位数统计
给定一个 k 位整数 N=dk−1 10k−1 +⋯+d1 101+d0(0≤di≤9, i=0,⋯,k−1, dk−1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。输入格式:每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。输出格式:对 N 中每一种不同的个...原创 2019-08-20 23:20:41 · 107 阅读 · 0 评论 -
PAT乙级:1023
题目地址代码import java.util.Arrays;import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Sca...原创 2019-05-14 13:02:00 · 125 阅读 · 0 评论