PAT浙江大学120.docx
- 文档编号:12255456
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:30
- 大小:19.21KB
PAT浙江大学120.docx
《PAT浙江大学120.docx》由会员分享,可在线阅读,更多相关《PAT浙江大学120.docx(30页珍藏版)》请在冰豆网上搜索。
PAT浙江大学120
浙江大学PATbasiclevel1~20
编者IKKI
1001害死人不偿命的(3n+1)猜想(15)
#include
usingnamespacestd;
intmain()
{
intn,sum=0;
cin>>n;
while(n!
=1)
{
if(n%2)
n=(3*n+1)/2;
else
n/=2;
sum++;
}
cout< return0; } 1001写出这个数(20) #include usingnamespacestd; #include intmain() { strings; intsum=0,b[100],j; char*s1[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; cin>>s; for(inti=0;i<=s.length()-1;i++) { sum+=(s[i]-'0'); } for(j=0;sum! =0;j++) { b[j]=sum%10; sum/=10; } for(j--;j>=0;j--) { cout< if(j)cout<<""; } return0; } 1002我要通过! (20) #include usingnamespacestd; #include strings; intjudge(intx,inty) { intsum1=0,sum2=0,sum3=0; for(inti=x+1;i if(s[i]! ='A') return-1; elseif(x==-1)sum1++; elseif(y==s.length())sum3++; elsesum2++; if(sum1)returnsum1; elseif(sum2)returnsum2; elsereturnsum3; } intmain() { inti,a,b,n,j=1,x,y,z; cin>>n; while(j<=n) { cin>>s; for(i=0;i<=s.length()-1;i++) { if(s[i]=='P') a=i; if(s[i]=='T') b=i; } if(b else { x=judge(-1,a); y=judge(a,b); z=judge(b,s.length()); if(x*y==z&&y&&x! =-1&y! =-1&&z! =-1) cout<<"YES"< elsecout<<"NO"< } j++; } } 1003成绩排名(20) #include #include usingnamespacestd; structstudent { strings1; strings2; intgrade; }q[1000]; intOnmath(constvoid*p1,constvoid*p2) { return((conststudent*)p1)->grade-((conststudent*)p2)->grade; } intmain() { intn,i=0; cin>>n; while(i { cin>>q[i].s1; cin>>q[i].s2; cin>>q[i].grade; i++; } qsort(q,n,sizeof(student),Onmath); cout< cout< return0; } 1004继续(3n+1)猜想(25) #include usingnamespacestd; structcao { intnum;//记录每一个数字 intnumm[1000]; intnum2;//记录每一个数字的最大长度 }q[101]; intcmp(constvoid*p1,constvoid*p2) { return((constcao*)p2)->num-((constcao*)p1)->num; } intmain() { inti=0,n,j,m; cin>>n; while(i { j=0; cin>>m; q[i].num=m; while(m! =1) { if(m%2==0) m=q[i].numm[j]=m/2; else m=q[i].numm[j]=(3*m+1)/2; j++; } q[i].num2=j; i++;//控制N个数字 } for(i=0;i for(j=0;j for(m=0;m { if(q[i].num==q[j].numm[m])//如果在后白你找到了产生成元素的话,那么它的标志改成后边的 { q[i].num=q[j].num;//break;//决定是否退出此次循环,即便不推出,也肯定找不到一样的了 } }//这样就把重复的都找到了,即便会把前面的找到,但会被(比它)更高级的所替代 qsort(q,n,sizeof(cao),cmp); cout< for(i=1;i if(q[i].num! =q[i-1].num) cout<<""< return0; } 1005换个格式输出整数(15) #include usingnamespacestd; intmain() { intN,i; intb=0; ints=0; intg=0; cin>>N; g=N%10; N/=10; s=N%10; N/=10; b=N%10; for(i=0;i cout<<"B"; for(i=0;i cout<<"S"; for(i=1;i<=g;i++) cout< cout< return0; } 1006素数对猜想(20) #include usingnamespacestd; boolsushu(intn) { for(inti=2;i<=n/2;i++) if(n%i==0) returnfalse; returntrue; } intmain() { inti,sum=0; intn; cin>>n; if(n<=4) { cout<<0; return0; } elseif(n<=40000) { for(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++; } elseif(n<=70000) { sum=811; for(i=60001;i<=n-2;i+=2) if(sushu(i)&&sushu(i+2)) sum++; } elseif(n<=80000) { sum=905; for(i=70001;i<=n-2;i+=2) if(sushu(i)&&sushu(i+2)) sum++; } elseif(n<=90000) { 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++; } } cout< return0; } #include usingnamespacestd; boolsushu(intn) { for(inti=2;i<=n/2;i++) if(n%i==0) returnfalse; returntrue; } intmain() { inti,sum=0; intn; cin>>n; if(n<=4) { cout<<0; return0; } for(i=3;i<=n-2;i+=2) if(sushu(i)&&sushu(i+2)) sum++; cout< return0; } 1007数组元素循环右移问题(20) #include usingnamespacestd; intmain() { inti,j,a[101]; intn,m,loc; cin>>n>>m; loc=m%n; for(i=0;i { cin>>a[(i+loc)%n]; } cout< for(i=1;i cout<<""< return0; } 1008说反话(20) #include #include #include #include usingnamespacestd; inta[40]={0}; intmain() { char*c; c=(char*)malloc(100); inti,j=0,x; gets(c); for(i=0;i if(c[i]=='') a[j++]=i; a[j]=strlen(c); for(x=j-1;x>=0;x--) { for(i=a[x]+1;i cout< cout<<""; } for(i=0;i cout< if(a[0]==0) for(i=0;i cout< return0; } 1009一元多项式求导(25) #include #include #include usingnamespacestd; intmain() { inti,j,a[101]; intn,m,loc,flag=-1; while(cin>>n>>m) { if(n*m) { flag++; if(flag) cout<<""< elsecout< } } if(flag==-1) cout<<"00"; return0; } 1010A+B和C(15) #include usingnamespacestd; intmain() { longlonga,b,c; intn,i; cin>>n; for(i=1;i<=n;i++) { cin>>a>>b>>c; if(a+b>c) cout<<"Case#"< true\n"; elsecout<<"Case#"< false\n"; } return0; } 1011数字分类(20) //20’ #include #include usingnamespacestd; intmain() { intn,i,j,flag=1,m; doublea4=0,f; inta1=0,a2=0,num2=0,a3=0,num4=0,a5=0; cin>>n; for(i=1;i<=n;i++) { cin>>m; if(m%5==0&&m%2==0) a1+=m; elseif(m%5==1) { if(flag%2) a2+=m; elsea2-=m; flag++; num2=1; } elseif(m%5==2) a3++; elseif(m%5==3) {a4+=m;num4++;} elseif(m%5==4) {if(m>a5)a5=m;} } f=a4/num4; if(a1)cout< if(num2)cout< if(a3)cout< if(a4)printf("%.1f",f);elsecout<<"N"; if(a5)cout< return0; } 1012数素数(20) #include #include usingnamespacestd; inta[10000]={0}; boolsushu(intn) { for(inti=2;i<=(int)sqrt(n);i++) if(n%i==0) returnfalse; returntrue; } intmain() { intn,m,i=1,flag=1,j=3; a[0]=2; cin>>n>>m; loop: if(i { if(sushu(j)) { a[i]=j; i++; } j+=2; gotoloop; } for(i=n-1;i {if(flag) cout< elsecout< flag=(flag+1)%10; } cout< return0; } 1013福尔摩斯的约会(20) #include #include #include usingnamespacestd; intmain() { strings1,s2,s3,s4; inti,k; char*c[]={"MON","TUE","WED","THU","FRI","SAT","SUN"},c1,c2; cin>>s1>>s2>>s3>>s4; for(i=0;i if(s2[i]==s1[i]&&s1[i]>='A'&&s1[i]<='G') { c1=s2[i];break; } for(++i;i { if(s2[i]==s1[i]&&(isdigit(s2[i])||(s2[i]>='A'&&s2[i]<='N'))) { c2=s2[i];break; } } for(i=0;i { if(s3[i]==s4[i]&&isalpha(s4[i])) { k=i;break; } } cout< if(c2<='9') cout<<0< "; else cout< "; if(k>9)cout< return0; } 1014德才论(25) #include #include #include #include #include usingnamespacestd; structstudent { strings; intde; intcai; }; voidprt(studenta) { printf("%s%d%d\n",a.s.c_str(),a.de,a.cai); } boolcmp(studenta,studentb) { if((a.cai+a.de)! =(b.cai+b.de)) return(a.cai+a.de)>(b.cai+b.de); elseif(a.de! =b.de) returna.de>b.de; elsereturna.s } intmain() { studentstu; charx[10]; intn,l,h,i,de,cai; vector vector vector vector cin>>n>>l>>h; for(i=0;i { scanf("%s%d%d",x,&stu.de,&stu.cai); stu.s.assign(x); if(stu.de>=l&&stu.cai>=l) { if(stu.de>=h&&stu.cai>=h) v1.push_back(stu); elseif(stu.de>=h&&stu.cai v2.push_back(stu); elseif(stu.de 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("%d\n",v1.size()+v2.size()+v3.size()+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); return0; } 1015部分A+B(15) #include #include usingnamespacestd; inta[11]={0},b[11]={0}; intmain() { intna,ma,i; stringn,m; longx=0,y=0; cin>>n>>na; cin>>m>>ma; for(i=0;i if(n[i]-'0'==na) {a[na]++;x=(10*x+na);} for(i=0;i if(m[i]-'0'==ma) {b[ma]++;y=(10*y+ma);} cout< return0; } 1016A除以B(20) #include #include usingnamespacestd; intmain() { strings; intnum,a[1000]={0},bcs,i,yu=0; cin>>s; cin>>num; for(i=0;i { bcs=yu*10+(s[i]-'0'); a[i]=bcs/num; yu=bcs%num; } if(a[0])cout<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PAT 浙江大学 120