PAT乙级最终题解
飞翔的荷兰人灬
阁下何不乘风起,扶摇直上九万里
展开
-
1002. 写出这个数 (20)
相关知识点:字符串处理思路: (1)用getchar()的形式每读入一个字符就将字符对应的数字进行累加。 (2)通过(1)将累加后的数sum,为了方便将sum从高位到低位输出,用sprinf转换成字符数组。 (3)从高位到低位枚举数组s[],输出每一位对应的字符串。#include<cstdio> int main() { int sum=0; char ch,s[4];原创 2016-07-17 19:10:41 · 6422 阅读 · 2 评论 -
1003. 我要通过!(20)
考查知识点:简单数学思路:注意有规律,p之前A的个数x乘以p与t之间A的个数y等于t之后A的个数z,即x*y=z,即可迎刃而解 。#include<cstdio> #include<cstring> int main() { int n; scanf("%d",&n); while(n--){ char str[原创 2016-07-18 19:08:16 · 3974 阅读 · 1 评论 -
1001. 害死人不偿命的(3n+1)猜想 (15)
思路:读入题目给出的n,之后用while循环语句反复判断n是否为1: (1)如果n为1,则退出循环。 (2)如果n不为1,则判断n是否为偶数,如果是偶数,则令n除以2;否则令n为(3*n+1)/2。之后令计数器count加1. 这样当退出循环时,count的值就是需要的答案。#include<cstdio> int main(){ int n, count = 0; scanf原创 2016-07-17 17:50:31 · 1133 阅读 · 0 评论 -
1004. 成绩排名 (20)
考查知识点:查找元素思路:利用结构体保存学生的信息,每读入一个学生的信息分别与max和min作比较并更新,最后得到的max,min即为答案。#include<cstdio> struct Student{ char name[15]; char num[15]; int grade; }temp,max,min; int main(){ int n; max.原创 2016-08-03 17:50:32 · 2848 阅读 · 3 评论 -
1005. 继续(3n+1)猜想 (25)
考查知识点:散列思路:用HashTable数组记录数字是否被覆盖,对输入的每一个数进行3n+1猜想的操作,对猜想操作过程中产生的每个数x,令HashTable[x]=1,表示被覆盖,将原先数组排序,再作为下标输出未被覆盖的数即可。#include<cstdio> #include<algorithm> using namespace std; bool cmp(int a,int b){ r原创 2016-08-03 18:07:32 · 955 阅读 · 2 评论