11 2017 档案
摘要:原题: https://www.patest.cn/contests/pat b practise/1061 思路: 这比判断多选题容易太多. 实现: c include define LEN 110 int main (void) { int snum; int qnum; int qscore[
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1062 思路: 我的思路是, 先把分数转成小数, 这样判断大小就非常简单. 一开始 得了19分, 有个1分的测试点没过, 后来看了网上的, 发现是忘记考虑给出的 2个分数, 没说谁大谁小. 实现:
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1063 思路: 福利题 实现:
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1064 思路: 最大的朋友证好是4 9 = 36, 开个40的整型数组, 读取的时候每个 数当成字符串来读, 随后就遍历计算累加和, 存在整型数组里. 实现: c include define LE
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1065 思路: 一眼看去题目中出现了很多大数字, 立马想到直接开大数组解决, 刷到第65题了, 这点直觉必然要有. 我的做法是开了两个数组, 一个存放 情侣的关系, 一个存放参加派对的访客. 要注意
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1066 思路: 开胃小菜 实现: c include int main (void) { int m; int n; int a; int b; int c; char ch; int tmp; i
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1067 思路: 又是一题重点放在怎么读入数据的问题, 我采用的是这种 , 题目没有说明用户输入的密码最大有多长, 本来我是想采用读取前21个字符 这种操作来判断的, 但测试点无法通过, 索性直接开个
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1068 思路: 测试点5是测试边界问题 测试点3有可能是绝对值 被虐了18小时+, 爽 实现: 参考: http://blog.csdn.net/yuebowhu/article/details/7
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1069 思路: 新开个数组维护一份中奖者名单, 用来判重复. 最关键的就是, 若果此人 已经中过将, 继续判断下一个人, 因为一个人可能连续转发多条, 也就是需要 循环判断, 直到直到一个全新的用户
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1070 思路: 这题就是玩文字游戏, 本来我站在正常人的思维上思考, 心说弄个最长的绳子, 那就是找出最长的两个绳子之和, 再除以2就OK. 而且题目说"原来两段绳子的长度就会减半", 这句话怎么理
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1075 思路: 这题真实把控制打印顺序用到了, 极致. 题目本身不是很复杂, 开个10万 的结构体, 然后进行3波遍历, 把需要的数据打印出来就可以. 关键就是控制打印 顺序. 主要就是仔细分析,
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1074 思路: 就是人工模拟加法的问题, 正常进制都是10, 现在就是进制从字符串中 读取. 但有些情况要坐下特殊处理, 比如输入的两个数可能位数不一样, 这对 我们后续计算造成不小的麻烦, 我的做
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1072 思路: 主要就是控制打印, 还有输出别忘了 控制符 实现: c include define LEN 10000 int main (void) { int n; // 学生人数 int m
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1073 思路: 这题是之前1058那道题的改编, 但是比较复杂. 这一次我没有再用异或位 运算之类的操作, 那样感觉更麻烦. 我直接开ASCII数组, 像下面这样 arr['a'], arr['b'
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1071 思路: 注意理清题意即可 实现:
阅读全文
摘要:前言 最近用C刷PAT算法题目, 发现C语言有太多需要关注大小范围的东西必须 知道, 虽说挺麻烦, 但也挺有意思. int最大值是多少 首先就是 类型的取值范围, 这个太常用. C语言标准规定最低范围是 [ 2^16 + 1, 2^16], 即[ 65535, 65536], 但这个明显已经过时,
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1059 思路: 参赛者id是数组下标, 数组值是参赛者排名位置(从1开始), 每次判断0不存在, 1领过奖了, 其它就是位置序号. 实现: c include define LEN 10010 in
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1060 思路: 把题目中的测试递减排序, 并且表上序号, 如下 可以清楚的看到, 从左往右遍历, 只要当天的天数小于路程, 爱丁顿数累加1即可. 实现: c include include defi
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1058 思路: 本题主要就是怎么读取数据的问题, 一定要注意scanf函数匹配到 空格或者回车会结束当前变量的赋值, 并且会丢弃这个空格或回车. 关于如何判断一项答题是否正确, 可以采用循环一个一个
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1057 思路: 有个坑, 就是和等于0时, 输出0 0, 而不是1 0, dont no why 实现:
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1056 思路: 双层for循环实现 实现: c include int main (void) { int n; int arr[10]; int sum = 0; int i; int j; sc
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1055 思路: 先从大到小排序(名字相同的也考虑上), 然后分排分别遍历, 第一次要遍历 的人数需要加上剩余的人数, 也就最后一排所有的人数, 之后每排的人数都相等. 题目中说的先插左边后插右边,
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1054 思路: 一开始我是人工判断.一个字符一个字符的考虑, 后来看了网友的 操作, 发现综合使用sprintf和sscanf是那么便捷! 实现: 参考: https://www.liuchuo.n
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1053 思路: 这题完全是文字游戏呀, 一开始卡在文字理解上, 只得12分. 加入阈值是20天, 调查了100天. 有40天是低电量状态, 那么该套房 仍然是可能空, 而不是一定空. 必须是先确定低
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1052 思路: 本题最大的问题在于怎么把表情符号存起来, 也就是怎么读数据的 问题, 按照题目描述, 输入可能不是ASCII字符. 问题就出在这里, 首先 我们也想一下, 题目说了表情符号最大是4个
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1051 思路: 就是数学公式, 感觉这题不是考算法而是考语言的. 保留两位小数, 并且正数前面添加"+"号(第2个测试点) C语言会把类似于 四舍五入成 , 如果没注意这点最后两个 测试点过不去.
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1050 正确思路(之一) 又是参考了简书OliverLew大神的思路, 才搞出来的. 该题正确的思路解法可分为3部分 1) 确定宽高, 对原始数组进行排序 2) 对数组原始数组进行螺旋遍历, 得到矩
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1048 思路: 首先我必须隆重说一下卡了我好几个小时的弱智错误, 题目中说 令个位为第1位, 大家注意各位在字符串里是 最后1位 , 我TM一直以为 左边第一位是个位, 浪费不少时间. 如果做此题你
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1047 思路: 直接开个1000+数组当队员编号 实现:
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1046 思路: 只需关注甲乙各自失败的次数即可. 实现: c include int main (void) { int n; int fail1 = 0; int fail2 = 0; int c
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1045 思路: 看样子乙级最后一道题, 如果复杂度是n^2, 基本上是错了, 不错 也是超时的节奏, 一开始自己的想法复杂了. 我们直接先看题目给出的测试 要想确定某一个数是不是主元, 就是要确定这
阅读全文
摘要:定义: Defined in header 原型: char strtok( char str, const char delim ); 参数: 2个都是字符串(以\0结尾) 功能描述: 该函数的功能是根据分割符分割字符串. 该函数最特殊的地方是它具有 类似"记忆"的功能, 请看下面的示例. 简单示
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1040 思路: 先给大家扔个测试 , 人工查一下这段字符串能组成 34个 . 这一题我自己的想法非常的渣, 也非常复杂, 最后看了OliverLew大神的解答, 才明白这题原来是这样搞的. 本题的解
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1039 思路: 还是那个套路, 直接把ASCII字符, 当成数组下标. 完整实现: c include include int main (void) { char have[1010]; int
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1038 思路: 分数当成数组下标用, so easy! 实现: c include int main (void) { int n; // 学生总数 int s; // 要查询的学生数 int sc
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1037 思路: 本题和处理时间转换类似, 先转成标准单位K, 打印的时候再格式化. 完整实现: c include int main (void) { int width; int height;
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1036 思路: 当 n = 3, n = 4时是特殊情况 完整实现: c include int main (void) { int width; int height; char ch; char
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1033 思路: 首先能输出的字符肯定都在想输出的字符串中, 只要一个一个读入字符, 每次判断这个字符能不能输出即可. 关键问题是, 写根据错误按键序列, 判断 当前字符能不能打出的函数. 逻辑梳理清
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1031 思路: 虽然容易, 但是不细心, 也挺耽误时间. 完整实现: c include int main (void) { int weight[17] = { 7, 9, 10, 5, 8, 4
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1032 思路: 开个100K+的数组, 轻松搞定. 完整实现:
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1030 测试用例: 思路: 首先题意不能理解错, 最小值不一定是排序后, 第一项. 其次要考虑, 全部数列都能用上的情况, 以及最大值并列的情况, 核心代码不超过10行, 大家仔细 分析下. 完整实
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1029 参考: https://github.com/Joshua ZY/PAT 实现思路: 如果以前做过字符串去重, 那么做这题可能会有点启发. 刚开始我用的方法很笨, 需要 双重循环, 后来参考
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1028 实现思路: 创建一个结构体, 分别包含name, year, month, person 首先录入全部人口信息, 边录入边过滤掉不合理的生日. 最后遍历合理人口数据, 找到最年长的人和 最年
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1027 实现思路: 假如把题目中的空格, 替换成+号, 那么一个测试输入输出如下: 此题相信大家都有思路, 主要是注意坑. 坑1: 号后面是不可以有空格的. 坑2: 就算剩余符号个数为0, 仍然要把
阅读全文
摘要:原题: https://www.patest.cn/contests/pat b practise/1026 实现思路: 就是转换输入格式的问题, 给秒转成"时分秒"显示格式. 完整代码:
阅读全文
摘要:输入: hello 输出: helo 第一种实现: 不新开数组, 也就是原地去重. c include include void removeDuplicate(char str[]); int main (void) { char name[] = "hello"; removeDuplicate
阅读全文