PAT (Basic Level) Practise (中文)

来源:互联网 发布:suse yum配置 编辑:程序博客网 时间:2024/05/01 15:49

1008. 数组元素循环右移问题 (20)

N个整数,右移M个位置,没说M<N

1012. 数字分类
A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...;
若其中某一类数字不存在,则在相应位置输出“N”。
算出来A2=0,不一定这类数字不存在,还可能是加和=0.

1019. 数字黑洞 (20)
注意输出是按4位格式,printf("%04d),但是输入不一定是4位数格式。测试点1-3都是不足四位数的。

1020. 月饼
注意需求大于所有供给时的情况。
库存量和价格需要double类型,否则测试点2通不过

1024. 科学计数法
要注意1.5E+1这种情况,没有小数点,也无须补0

1027. 打印沙漏(20)
每行的最后一个“*”号后面不要有空格,否则会不通过。其实也是自己没想好,输入空格是没必要的,影响运行效率。

1028. 人口普查
靠自己通过了!
一开始没通过是因为没考虑到无人符合条件时的情况,应该只输出“0”.

1034. 有理数四则运算(20)
题目保证正确的输出中没有超过整型范围的整数,但是运算过程中可能会超过范围,所以为保险起见,所有格式设为long long型,就通过了。

1038. 统计同成绩学生
双重循环在数据量大的时候会很慢。
所以要想其他办法,把分数作为数组序号,先统计出各分数的人数。

1044. 火星数字
居然只靠自己就通过了,没上网看别人的。
scanf和gets函数混用时,注意回车问题,前面的scanf接收完了,剩下个回车被gets函数接纳,两种方法,一是scanf("%d\n",&N); 接收回车,二是添加getchar()过滤回车。
程序注意“0”的问题,如果是13的整数倍,直接输出进位后的字符串,换行;如果是0,就输出tret。

1051. 复数乘法
要求实部和虚部均保留2位小数,如果是-0.00001,默认输出是-0.00,但是按要求应该是0.00,这个地方需要设定,否则两个测试点通不过。

1059. C语言竞赛
注意,既重复又不存在的情况,应该算不存在。
重复又存在的情况,统统算重复。

1060. 爱丁顿数
满足有E天骑车超过E英里的最大整数E,注意是超过,不能等于。
排序用冒泡和选择排序都会运行超时,百度了一下快速排序,就可以了。
还是要学会各种排序算法。