1、PAT浙江大学120浙江大学PAT basic level 120编者IKKI1001 害死人不偿命的(3n+1)猜想 (15)#includeusing namespace std;int main() int n,sum=0; cinn; while(n!=1) if(n%2) n=(3*n+1)/2; else n/=2; sum+; coutsumendl; return 0;1001 写出这个数 (20)#includeusing namespace std;#includeint main() string s; int sum=0,b100,j; char *s110=ling,
2、yi,er,san,si,wu,liu,qi,ba,jiu; cins; for(int i=0;i=0;j-) couts1bj; if(j)cout ; return 0;1002 我要通过!(20)#includeusing namespace std;#includestring s;int judge(int x,int y) int sum1=0,sum2=0,sum3=0; for(int i=x+1;in; while(js; for(i=0;i=s.length()-1;i+) if(si=P) a=i; if(si=T) b=i; if(ba)coutNOendl; els
3、e x=judge(-1,a); y=judge(a,b); z=judge(b,s.length(); if(x*y=z&y&x!=-1&y!=-1&z!=-1) coutYESendl; else coutNOendl; j+; 1003 成绩排名 (20)#include#includeusing namespace std;struct student string s1; string s2; int grade;q1000;int Onmath(const void *p1,const void *p2) return (const student *)p1)-grade-(con
4、st student *)p2)-grade;int main() int n,i=0; cinn; while(iqi.s1; cinqi.s2; cinqi.grade; i+; qsort(q,n,sizeof(student),Onmath); coutqn-1.s1 qn-1.s2endl; coutq0.s1 q0.s2; return 0;1004 继续(3n+1)猜想 (25)#includeusing namespace std;struct cao int num; /记录每一个数字 int numm1000; int num2; /记录每一个数字的最大长度q101;int
5、 cmp(const void *p1,const void *p2) return (const cao *)p2)-num-(const cao *)p1)-num;int main() int i=0,n,j,m; cinn; while(im; qi.num=m; while(m!=1) if(m%2=0) m=qi.nummj=m/2; else m=qi.nummj=(3*m+1)/2; j+; qi.num2=j; i+; /控制N个数字 for(i=0;in;i+) /每一个数字,与其后边的数字的生成元素做对比,共有n组 for(j=0;jn;j+) for(m=0;mqj.n
6、um2;m+) if(qi.num=qj.nummm) /如果在后白你找到了产生成元素的话,那么它的标志改成后边的 qi.num=qj.num;/break; /决定是否退出此次循环,即便不推出,也肯定找不到一样的了 /这样就把重复的都找到了,即便会把前面的找到,但会被(比它)更高级的所替代 qsort(q,n,sizeof(cao),cmp); coutq0.num; for(i=1;in;i+) if(qi.num!=qi-1.num) cout qi.num; return 0;1005 换个格式输出整数 (15)#include using namespace std; int mai
7、n() int N,i; int b=0; int s=0; int g=0; cinN; g = N%10; N/=10; s = N%10; N/=10; b = N%10; for (i=0;ib;i+) coutB; for (i=0;is;i+) coutS; for (i=1;i=g;i+) couti; coutendl; return 0; 1006 素数对猜想 (20)#includeusing namespace std;bool sushu(int n) for(int i=2;in; if(n=4) cout0; return 0; else if(n=40000) f
8、or(i=3;i=n-2;i+=2) if(sushu(i)&sushu(i+2) sum+; else if(n=60000) sum=591; for(i=40001;i=n-2;i+=2) if(sushu(i)&sushu(i+2) sum+; else if(n=70000) sum=811; for(i=60001;i=n-2;i+=2) if(sushu(i)&sushu(i+2) sum+; else if(n=80000) sum=905; for(i=70001;i=n-2;i+=2) if(sushu(i)&sushu(i+2) sum+; else if(n=90000
9、) sum=1007; for(i=80001;i=n-2;i+=2) if(sushu(i)&sushu(i+2) sum+; else sum=1116; for(i=90001;i=n-2;i+=2) if(sushu(i)&sushu(i+2) sum+; coutsum; return 0;#includeusing namespace std;bool sushu(int n) for(int i=2;in; if(n=4) cout0; return 0; for(i=3;i=n-2;i+=2) if(sushu(i)&sushu(i+2) sum+; coutsum; retu
10、rn 0;1007 数组元素循环右移问题 (20)#includeusing namespace std;int main() int i,j,a101; int n,m,loc; cinnm; loc=m%n; for(i=0;ia(i+loc)%n; couta0; for(i=1;in;i+) cout ai; return 0; 1008 说反话 (20)#include#include#include#includeusing namespace std;int a40=0;int main() char *c; c=(char*)malloc(100); int i,j=0,x;
11、gets(c); for(i=0;i=0;x-) for(i=ax+1;iax+1;i+) coutci; cout ; for(i=0;ia0;i+) coutci; if(a0=0) for(i=0;istrlen(c);i+) coutci; return 0;1009 一元多项式求导 (25)#include#include#includeusing namespace std;int main() int i,j,a101; int n,m,loc,flag=-1; while(cinnm) if(n*m) flag+; if(flag) cout n*m m-1; else cou
12、tn*m m-1; if(flag=-1) cout0 0; return 0;1010 A+B和C (15)#includeusing namespace std;int main() long long a,b,c; int n,i; cinn; for(i=1;iabc; if(a+bc) coutCase #i: truen; else coutCase #i: falsen; return 0;1011 数字分类 (20)/20#include#includeusing namespace std;int main() int n,i,j,flag=1,m; double a4=0,
13、f; int a1=0,a2=0,num2=0,a3=0,num4=0,a5=0; cinn; for(i=1;im; if(m%5=0&m%2=0) a1+=m; else if(m%5=1) if(flag%2) a2+=m; else a2-=m; flag+; num2=1; else if(m%5=2) a3+; else if(m%5=3) a4+=m;num4+; else if(m%5=4) if(ma5)a5=m; f=a4/num4; if(a1)couta1 ;else coutN ; if(num2)couta2 ;else coutN ; if(a3)couta3 ;
14、else coutN ; if(a4)printf(%.1f ,f);else coutN ; if(a5)couta5;else coutN; return 0;1012 数素数 (20)#include#includeusing namespace std;int a10000=0;bool sushu(int n) for(int i=2;inm; loop: if(im) if(sushu(j) ai=j; i+; j+=2; goto loop; for(i=n-1;im-1;i+) if(flag) coutai ; else coutaiendl; flag=(flag+1)%1
15、0; coutai; return 0;1013 福尔摩斯的约会 (20)#include#include#includeusing namespace std;int main() string s1,s2,s3,s4; int i,k; char *c=MON,TUE,WED,THU,FRI,SAT,SUN,c1,c2; cins1s2s3s4; for(i=0;is2.length()&i=A&s1i=G) c1=s2i;break; for(+i;is2.length()&i=A&s2i=N) c2=s2i;break; for(i=0;is3.length()&is4.length(
16、);i+) if(s3i=s4i&isalpha(s4i) k=i;break; coutcc1-A ; if(c2=9) cout0c2:; else coutc2-A+109)coutk;else cout0k; return 0;1014 德才论 (25)#include#include #include #include#include using namespace std; struct student string s; int de; int cai;void prt(student a) printf(%s %d %dn,a.s.c_str(),a.de,a.cai);boo
17、l cmp(student a,student b) if(a.cai+a.de)!=(b.cai+b.de) return (a.cai+a.de)(b.cai+b.de); else if(a.de!=b.de) return a.deb.de; else return a.sb.s; int main() student stu; char x10; int n,l,h,i,de,cai; vector v1; vector v2; vector v3; vector v4; cinnlh; for(i=0;i=l&stu.cai=l) if(stu.de=h&stu.cai=h) v1
18、.push_back(stu); else if(stu.de=h&stu.caih) v2.push_back(stu); else if(stu.deh&stu.cai=stu.cai) v3.push_back(stu); else v4.push_back(stu); sort(v1.begin(),v1.end(),cmp); sort(v2.begin(),v2.end(),cmp); sort(v3.begin(),v3.end(),cmp); sort(v4.begin(),v4.end(),cmp); printf(%dn,v1.size()+v2.size()+v3.siz
19、e()+v4.size(); for_each(v1.begin(),v1.end(),prt); for_each(v2.begin(),v2.end(),prt); for_each(v3.begin(),v3.end(),prt); for_each(v4.begin(),v4.end(),prt); return 0; 1015 部分A+B (15)#include#includeusing namespace std;int a11=0,b11=0;int main() int na,ma,i; string n,m; long x=0,y=0; cinnna; cinmma; fo
20、r(i=0;in.length();i+) if(ni-0=na) ana+;x=(10*x+na); for(i=0;im.length();i+) if(mi-0=ma) bma+;y=(10*y+ma); coutx+y; return 0;1016 A除以B (20)#include#includeusing namespace std;int main() string s; int num,a1000=0,bcs,i,yu=0; cins; cinnum; for(i=0;is.length();i+) bcs=yu*10+(si-0); ai=bcs/num; yu=bcs%nu
21、m; if(a0)couta0; else if(a0=0&a1=0)couta0; for(i=1;is.length();i+) coutai; cout yu; return 0;1017 锤子剪刀布 (20)#include#includeusing namespace std;struct game int win; int fair; int lose;c,j,b;struct person game c; game j; game b;jia,yi; int main() int n,i; char jx,yx,c; jia.c.win=jia.c.lose=jia.c.fair=0; jia.b.win=jia.b.lose=jia.b.fair=0; jia.j.win=jia.j.lose=jia.j.fair=0; yi.c.win=yi.c.lose