计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才提供参考标准。

考试遵循统一考试大纲、统一考试命题、统一考试评分标准、统一颁发证书的原则,由考试中心负责考试的组织、日常管理和具体实施工作。每年分春、秋、冬季组织3次统一考试,大约分别在每年2-3月、8-9月、11-12月举行。每场考试分三个难度级别:顶级(Top Level)、甲级(Advanced Level)、乙级(Basic Level)。

代码说明

注意:#ifndef#endif中的代码块(例如下面的代码)只有在本地运行时才会执行,并且接下来的输入都将从test.txt中读入,最后结果输出到test.out文件中,最终提交代码时记得删除。(如果我的代码中出现了)

#ifndef ONLINE_JUDGE
freopen("test.txt", "r", stdin);
freopen("test.out", "w", stdout);
#endif

如果出现 c4996 警告,临时方案是文件开头加上#pragma warning(disable:4996)忽略。

任何问题的解决方案都是基于本人当时的水平,并非一定为最优解。另外,为了令大部分初学者能够看懂,乙级基础题部分我将会尽可能避免使用数据结构和标准模板库(STL)的一些进阶用法,以及使用一些友善的变量名和注释。但是在工程方面,使用一些有效的工具是十分有必要的。我们在意的是思路与算法,所以使用了using namespace std这种被开发者吐槽很多次的写法。还需要说明的是,我的代码可能会尽可能降低复杂度,同时也会对已有代码进行语法优化,对于一些奇葩的写法会给出详细的说明。

为了防止余光瞟到代码,所有参考C++题解需要手动点开。

代码块工具栏有展开、复制、换行等功能。

乙级(Basic Level)

1001. 害死人不偿命的(3n+1)猜想 (15)
1002. 写出这个数 (20)
1003. 我要通过!(20)
1004. 成绩排名 (20)
1005. 继续(3n+1)猜想 (25)
1006. 换个格式输出整数 (15)
1007. 素数对猜想 (20)
1008. 数组元素循环右移问题 (20)
1009. 说反话 (20)
1010. 一元多项式求导 (25)
1011. A+B和C (15)
1012. 数字分类 (20)
1013. 数素数 (20)
1014. 福尔摩斯的约会 (20)
1015. 德才论 (25)
1016. 部分A+B (15)
1017. A除以B (20)
1018. 锤子剪刀布 (20)
1019. 数字黑洞 (20)
1020. 月饼 (25)
1021. 个位数统计 (15)
1022. D进制的A+B (20)
1023. 组个最小数 (20)
1024. 科学计数法 (20)
1025. 反转链表 (25)
1026. 程序运行时间(15)
1027. 打印沙漏(20)
1028. 人口普查(20)
1029. 旧键盘(20)
1030. 完美数列(25)
1031. 查验身份证(15)
1032. 挖掘机技术哪家强(20)
1033. 旧键盘打字(20)
1034. 有理数四则运算(20)
1035. 插入与归并(25)
1036. 跟奥巴马一起编程(15)
1037. 在霍格沃茨找零钱(20)
1038. 统计同成绩学生(20)
1039. 到底买不买(25)
1040. 有几个PAT(25)
1041. 考试座位号(15)
1042. 字符统计(20)
1043. 输出PATest(20)
1044. 火星数字(20)
1045. 快速排序(25)
1046. 划拳(15)
1047. 编程团体赛(20)
1048. 数字加密(20)
1049. 数列的片段和(20)
1050. 螺旋矩阵(25)
1051. 复数乘法 (15)
1052. 卖个萌 (20)
1053. 住房空置率 (20)
1054. 求平均值 (20)
1055. 集体照 (25)
1056. 组合数的和(15)
1057. 数零壹(20)
1058. 选择题(20)
1059. C语言竞赛(20)
1060. 爱丁顿数(25)
1061. 判断题(15)
1062. 最简分数(20)
1063. 计算谱半径(20)
1064. 朋友数(20)
1065. 单身狗(25)
1066. 图像过滤(15)
1067. 试密码(20)
1068. 万绿丛中一点红(20)
1069. 微博转发抽奖(20)
1070. 结绳(25)
1071. 小赌怡情(15)
1072. 开学寄语(20)
1073. 多选题常见计分法(20)
1074. 宇宙无敌加法器(20)
1075. 链表元素分类(25)
1076. Wifi密码 (15)
1077. 互评成绩计算 (20)
1078. 字符串压缩与解压 (20)
1079. 延迟的回文数 (20)
1080. MOOC期终成绩 (25)

甲级(Advanced Level)

将在乙级完成后添加