![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PAT
应天๑
Nothing is Final!!!
展开
-
PAT (Basic Level) Practice (中文)1024 科学计数法 python
出处: https://pintia.cn/problem-sets/994805260223102976/problems/994805297229447168 1024 科学计数法 (20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确给出。 现以科学计数法的格式给出实数 A,请编写程序按普通数字表示法输出 A,并原创 2021-05-21 00:21:45 · 131 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1023 组个最小数 python
出处: https://pintia.cn/problem-sets/994805260223102976/problems/994805298269634560 1023 组个最小数 (20 分) 给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。 现给定数字,请编写程序输出能够组成的最小的数。 输入格式: 输入在一行中给出 10 个原创 2021-05-19 16:33:08 · 117 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1022 D进制的A+B python
出处: https://pintia.cn/problem-sets/994805260223102976/problems/994805299301433344 1022 D进制的A+B (20 分) 输入两个非负 10 进制整数 A 和 B (≤2^30−1),输出 A+B 的 D(1<D≤10)进制数。 输入格式: 输入在一行中依次给出 3 个整数 A、B 和 D。 输出格式: 输出 A+B 的 D 进制数。 输入样例: 123 456 8 输出样例: 1103 代码: n = list(m原创 2021-05-19 16:19:02 · 98 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1021 个位数统计 python
出处: https://pintia.cn/problem-sets/994805260223102976/problems/994805300404535296 代码: n = input() num = [0] * 10 #建立一个数组,用来统计0-9出现的次数 for i in n: num[int(i)] += 1 for i in range(10): if num[i] != 0: print('%d:%d'%(i,num[i])) #按格式输出原创 2021-05-19 14:31:08 · 97 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1020 月饼 python
出处: https://pintia.cn/problem-sets/994805260223102976/problems/994805301562163200 1020 月饼 (25 分) 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。 注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45原创 2021-05-19 01:31:29 · 140 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1019 数字黑洞 python
出处: https://pintia.cn/problem-sets/994805260223102976/problems/994805302786899968 1019 数字黑洞 (20 分) 给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的 6174,这个神奇的数字也叫 Kaprekar 常数。 例如,我们从6767开始,将得到 7766 -原创 2021-05-18 19:13:44 · 235 阅读 · 1 评论 -
PAT (Basic Level) Practice (中文)1018 锤子剪刀布 python (无超时)
出处: https://pintia.cn/problem-sets/994805260223102976/problems/994805304020025344 1018 锤子剪刀布 (20 分) 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10^5 ),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的原创 2021-05-16 18:51:27 · 370 阅读 · 1 评论 -
PAT (Basic Level) Practice (中文)1017 A除以B python
出处: https://pintia.cn/problem-sets/994805260223102976/problems/994805305181847552 1017 A除以B (20 分) 本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。 输入格式: 输入在一行中依次给出 A 和 B,中间以 1 空格分隔。 输出格式: 在一行中依次输出 Q 和 R,中间以 1 空格分隔。 输入样例: 12345678原创 2021-05-16 17:33:22 · 124 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1016 部分A+B python
出处: https://pintia.cn/problem-sets/994805260223102976/problems/994805306310115328 1016 部分A+B (15 分) 正整数 A 的“DA(为 1 位整数)部分”定义为由 A 中所有 DA组成的新整数 PA。例如:给定 A=3862767,DA=6,则 A 的“6 部分”PA是 66,因为 A 中有 2 个 6。 现给定 A、DA、B、DB,请编写程序计算 PA+PB。 输入格式: 输入在一行中依次给出 A、DA、B、DB原创 2021-05-16 17:21:48 · 130 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1015 德才论 python
出处: https://pintia.cn/problem-sets/994805260223102976/problems/994805307551629312 这个题按照题目描述的一步步写出来到没有很难,但是问题是python的常规写法往往会有超时。 我看到很多地方都是用别的语言解决这个问题,目前只看到一个用python写的可全部通过(多数情况下)的版本: https://blog.csdn.net/letv0907/article/details/104788854?ops_request_misc原创 2021-05-16 16:44:09 · 299 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1014 福尔摩斯的约会 python
出处: https://pintia.cn/problem-sets/994805260223102976/problems/994805308755394560 大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母 D,代表星期四;第原创 2021-05-11 16:35:39 · 119 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1013 数素数 python
出处: https://pintia.cn/problem-sets/994805260223102976/problems/994805309963354112 输入格式: 输入在一行中给出 M 和 N,其间以空格分隔。 输出格式: 输出从 PM 到 PN 的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。 我开始以为是输出从M到N之间的素数,其实题目要求的是输出第M个到第N个素数。 代码: import math m = list(map(int,input().split(原创 2021-05-04 17:14:24 · 186 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1012 数字分类 python
出处: https://pintia.cn/problem-sets/994805260223102976/problems/994805311146147840 这个题比较容易,不过一些小细节要注意。 代码: m = list(map(int,input().split())) n = m[0] res = m[1:] A1,A2,A3,A4,A5 = 0,0,0,0,0 flag = 1 sum1 = 0 sum2 = 0 for i in range(n): if res[i] % 5 ==原创 2021-05-02 17:41:36 · 108 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1011 A+B 和 C python
出处: https://pintia.cn/problem-sets/994805260223102976/problems/994805312417021952 这个题应该是到目前为止的最简单的一个题。 代码: n = int(input()) for i in range(n): res = list(map(int,input().split())) if res[0] + res[1] > res[2]: print('Case #{}: true'.forma原创 2021-05-02 00:18:14 · 113 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1010 一元多项式求导 python
出处: https://pintia.cn/problem-sets/994805260223102976/problems/994805313708867584 开始的时候没太看懂题目什么意思,后来大致明白了,就是求导,前一位是系数,后一位是指数,如果是0的话返回0 0。 参考: https://blog.csdn.net/nanhuaibeian/article/details/99226672?ops_request_misc=%257B%2522request%255Fid%2522%253A%25原创 2021-04-28 01:42:40 · 95 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1009 说反话 python
出处: https://pintia.cn/problem-sets/994805260223102976/problems/994805314941992960 这个题还是比较容易的,就是注意输出格式倒着输出就可以了。 代码: m = input().split() m.reverse() print(' '.join(m)) 我的错误代码: m = input().split(' ') for i in range(len(m) - 1,-1,-1): print(m[i]) 哪里格式错了原创 2021-04-28 01:33:47 · 72 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1008 数组元素循环右移问题 python
出处: https://pintia.cn/problem-sets/994805260223102976/problems/994805316250615808 这个题目还是比较容易理解的,实现起来也比较容易。 代码: tmp,shuzu = input().split(' '),input().split(' ') m,n = int(tmp[0]),int(tmp[1]) print(' '.join(shuzu[m - n:] + shuzu[0:m - n])) 下面记录一下我在做题的时候写的错原创 2021-04-28 01:22:36 · 205 阅读 · 1 评论 -
PAT (Basic Level) Practice (中文)1007 素数对猜想 python
出处: https://pintia.cn/problem-sets/994805260223102976/problems/994805317546655744 1007 素数对猜想 (20 分) 这个题的主要思路是首先要找到不超过N的多有素数,然后计算它们当中相差为2的个数。 如何求素数,最简单的方法就是依次除以从2到比自己小1的数,只有其中有一个能整除,就说明它不是素数。 但这样的做法太暴力了,提交后会超时。 进行优化,第一步是除到根号N就可以了,为什么呢?因为假设存在一个大于根号N的数能被N整除,那原创 2021-04-28 00:40:47 · 117 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1006 换个格式输出整数 python
出处:https://pintia.cn/problem-sets/994805260223102976/problems/994805318855278592 这个题还是比较简单的: n = int(input()) bai = 0 shi = 0 ge = 0 bai = int(n / 100) shi = int((n - 100 * bai) / 10) ge = n % 10 shuchu = '' for i in range(int(bai)): shuchu += 'B' for原创 2021-04-25 16:57:23 · 61 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1005 继续(3n+1)猜想 python
出处:https://pintia.cn/problem-sets/994805260223102976/problems/994805320306507776 1005 继续(3n+1)猜想 (25 分) 卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n=3 进行验证的时候,我们需要计算 3、5、8、4、2、1,则当我们对 n=5、8、4、2 进行验证的时候,就可以直接判定原创 2021-04-25 10:31:21 · 113 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1004 成绩排名 python
出处:https://pintia.cn/problem-sets/994805260223102976/problems/994805321640296448 n = int(input()) name = [] #存储名字变量的数组 num = [] #存储学号变量的数组 grade = [] #存储成绩变量的数组, maxgrade = 0 #maxgrade为最大成绩,先设置的小一点,方便后续替换 mingrage = 100 #mingrade为最小成绩,先设置的大一点,方便后原创 2021-04-21 23:22:10 · 84 阅读 · 0 评论 -
PAT (Basic Level) Practice (中文)1003 我要通过!python
出处:https://pintia.cn/problem-sets/994805260223102976/problems/994805323154440192 参考:https://blog.csdn.net/nanhuaibeian/article/details/98741857?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161900721816780264041480%2522%252C%2522scm%2522%253A%252原创 2021-04-21 22:09:52 · 91 阅读 · 0 评论 -
PAT (Basic Level) 1002 写出这个数 python
https://pintia.cn/problem-sets/994805260223102976/problems/994805324509200384 n = input() #读入数字 m = len(n) #m为数字长度 sum = 0 #sum为数字各位之和 for i in range(m): #将数字各位相加 sum += int(n[i]) #读入的为字符串形式,相加需转换成int型 shuzi = ['ling','yi','er','san','si','wu','li原创 2021-04-21 20:07:36 · 58 阅读 · 0 评论 -
PAT (Basic Level) Practice1001 害死人不偿命的(3n+1)猜想 python
1001 害死人不偿命的(3n+1)猜想 (15 分) 作者 CHEN, Yue 单位 浙江大学 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB n = int(input()) #input()是以字符形式输入的,这里转换成int形式 sum = 0 #sum用来记录砍几下 if n > 0 and n <= 1000: #用来满足不超过1000的正整数这个条件 while n != 1: #砍到1停止 if n % 2 == 0:原创 2021-04-21 18:36:00 · 76 阅读 · 0 评论