一.A+B系列
1001
该题的重点是:A和B是数字,将A+B的结果用标准形式表现出
Sample Input:
-1000000 9
Sample Output:
-999,991
解决方法:将结果的每位数从后往前保存在数组中,再从前往后输出,每三位再输出一个,
题目通道PAT A101
1002
该题的A和B是多项式,N和a分别代表指数和系数,K代表项数
Sample Input:
2 1 2.4 0 3.2
2 2 1.5 1 0.5
Sample Output:
3 2 1.5 1 2.9 0 3.2
解决方法:设置数组保存指数对应的系数mp[n]=a,用set保存系数不为0的项的指数
题目通道PAT A1002
1058
其本质是一个进位问题:Galleon.Sickle.Knut
17Sickle = 1Galleon,29Knut = 1Sickle
Sample Input:
3.2.1 10.16.27
Sample Output:
14.1.28
解决方法:逐项相加,多的进位
题目通道PAT A1058
1065
大数溢出这种真的好烦
long long型的数的最大值为263-1,最小值为-263
因此当A和B都是最大值时,它们的和为264-2,此时它们的和输出为负,但显然A+B>C
当A和B都是最小值时,它们的和为-264,此时它们的和的输出为正,但显然A+B<C
因此要先排除以上两种情况后再判断A+B和C的大小
注意!!这里的a、b、c如果用cin输入就会出错,而用scanf输入就会正确
题目通道PAT A1065
二.数的表达系列
1005
就是将每一位上的数字相加,然后将和的每一位用英文表示出来
Sample Input:
12345
Sample Output:
one five
解决方法:数的按位拆分相关
题目通道PAT A1005
三.进制相关
1010
给两个数,并告诉其中一个数的基数(进制),要求判断另一个数是否有可能性等于已知基数的数,若有,给出二者相等时未知基数的数是几进制的,若没有可能,则输出Impossible
该题主要问题是规模的问题
涉及了进制转换和二分法,需要注意二分法的上下界的确立
题目通道PAT A1010
1015
给一个数和它是几进制,要求判断它是不是素数,如果是素数,要求判断在n进制基础上,它的水平翻转的数转换为十进制是不是素数
因此涉及三点,进制转换、素数判断以及水平翻转
素数判断PAT相关基础知识
题目通道PAT A1015
1019
判断是否数在进制下的表示是否水平对称
题目通道PAT A1019
1027
直接的进制转换问题,13位,需要在前面补0
题目通道PAT A1027
四.逐位处理
1023
就是判断数据乘2后的数,每个数字的数量是否和原数据相同
因为数据过大,因此需要逐位进行处理
题目通道PAT A1023
1024
将给的数与它的翻转数相加,直到和是一个回文。有限定的步数
由于数据过大,也需要逐位进行处理
题目通道PAT A1024
1060
将两个数转化为科学计数法,然后判断两个数是否相等
重点在于如何将数化为科学计数法
题目通道(尚未添加)
翻转数
1069
要求将一个数的每一位从大到小排序后得到的数再与其翻转数相减,直到得到6174
这个黑洞数