pat乙级 1011-1015

//1
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
long long a,b,c;
int i=1;
while(n--){
scanf("%lld %lld %lld",&a,&b,&c);
printf("Case #%d: %s\n",i,a+b>c?"true":"false");
i++;
}
return 0;
}
//2
///第二种情况有可能有偶数个所以得注意一下
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
int a[n];
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
int a1,a2,a3;
double a4;
a1=a2=a3=a4=0;
int t=1,cnt_1=0,cnt_2=0,max=0;
for(int i=0;i<n;i++){
if(a[i]%5==0){
if(a[i]%2==0){
a1+=a[i];
}
}else if(a[i]%5==1){
a2+=a[i]*t;
cnt_1++;
t*=-1;
}else if(a[i]%5==2){
a3++;
}else if(a[i]%5==3){
cnt_2++;
a4+=a[i];
}else{
if(a[i]>max){
max=a[i];
}
}
}
if(a1==0) printf("N ");else printf("%d ",a1);
if(a2==0&&cnt_1==0) printf("N ");else printf("%d ",a2);
if(a3==0) printf("N ");else printf("%d ",a3);
if(a4==0) printf("N ");else printf("%.1f ",(a4/cnt_2));
if(max==0) printf("N");else printf("%d",max);
return 0;
}
//3
#include<stdio.h>
int isprime(int a){
for(int i=2;i*i<=a;i++){
if(a%i==0)
return 0;
}
return 1;
}
int s[100000]; ///要创建一万个素数的数组
int main(){
int t=1;
for(int i=2;i<=120000;i++){ //啊啊啊这个十二万呐找的好辛苦
if(isprime(i)){
s[t++]=i;
}
}
int m,n;
scanf("%d %d",&m,&n);
int cnt=0;
for(int i=m;i<n;i++){
printf("%d",s[i]);
cnt++;
if(cnt%10==0){
printf("\n");
}else{
printf(" ");
}
}
printf("%d",s[n]); //输出最后一个元素
cnt++;
if(cnt%10==0) printf("\n");
return 0;
}
//4
#include<bits/stdc++.h>
using namespace std;
string week[7] = {"MON ", "TUE ", "WED ", "THU ", "FRI ", "SAT ", "SUN "};
int main(){
char a[100],b[100],c[100],d[100];
cin>>a>>b>>c>>d;
int cnt_1,cnt_2,cnt_3,flag=0;
int l=strlen(a)<strlen(b)?strlen(a):strlen(b);

for(int i=0;i<l;i++){
if(a[i]>='A'&&a[i]<='Z'&&a[i]==b[i]&&flag==0){
flag=1;
cnt_1=a[i]-'A';
cout<<week[cnt_1];
i++;
}
if(a[i]==b[i]&&flag==1){
if(a[i]>='0'&&a[i]<='9'){
cnt_2=a[i]-'0';
printf("%02d",cnt_2);
break;
}
if(a[i]>='A'&&a[i]<='N'){
cnt_2=a[i]-'A'+10;
printf("%02d",cnt_2);
break;
}
}
}
int ll=strlen(c)<strlen(d)?strlen(c):strlen(d);
for(int i=0;i<ll;i++){
if(isalpha(c[i])&&c[i]==d[i]){
cnt_3=i;
printf(":%02d",cnt_3);
break;
}
}
return 0;
}

//5
//后边不能全用cout输出,否则会超时,
//由于准考证号是纯数字,所以可以定义为int
#include<bits/stdc++.h>
using namespace std;
struct node{
string s;
int de,cai;
};
bool cmp(node a,node b){
if((a.de+a.cai)!=(b.de+b.cai))
return (a.de+a.cai)>(b.de+b.cai);
else if(a.de!=b.de)
return a.de>b.de ;
else
return a.s<b.s;
}
int main(){
int n,l,h;
scanf("%d%d%d",&n,&l,&h);
vector<node>v[4];
node a;
int total=n;
while(n--){
cin>>a.s>>a.de>>a.cai;
if(a.de<l||a.cai<l) total--;
else if(a.de>=h&&a.cai>=h) v[0].push_back(a);
else if(a.de>=h&&a.cai<h) v[1].push_back(a);
else if(a.de<h&&a.cai<h&&a.de>=a.cai) v[2].push_back(a);
else v[3].push_back(a);
}
cout<<total<<endl;
for(int i=0;i<4;i++){
sort(v[i].begin(),v[i].end(),cmp);
for(int j=0;j<v[i].size();j++){
cout<<v[i][j].s<<endl; ///cout的超时问题!!
printf("%d %d\n",v[i][j].de,v[i][j].cai);
}
}
return 0;
}

猜你喜欢

转载自www.cnblogs.com/suying/p/10394947.html