PAT (Basic Level) Practice 题解代码(持续更新)

PAT (Basic Level) Practice 题解代码(持续更新),第1张

PAT (Basic Level) Practice 题解代码(持续更新) PAT (Basic Level) Practice

1001-1110(已更新至最新)

1001-1100

链接:https://pan.baidu.com/s/1Zs7rZn_Z3fyARkwUusviJA
提取码:xkyq

1101-1110

链接:https://pan.baidu.com/s/1hR8bLuuWiDYb2z9XnRxpOQ
提取码:c2yj

1001 卡拉兹(Callatz)(3n+1)猜想 (15 分)
#include
using namespace std;

int main(){
	int n;
	cin >> n;
	int step = 0 ;
	while(n!=1){
		if(n % 2 == 0){
			n = n / 2;
		}else{
			n = 3 * n + 1;
			n = n / 2;
		}
		step++;
	}
	cout << step << endl;
	return 0;
} 
1002 写出这个数 (20 分)
#include
using namespace std;

int main(){
	string s;
	cin >> s;
	int total = 0;
	for(int i=0;i 
1003 我要通过! (20 分) 
#include
using namespace std;
int isPTA(string s){
	int flag = 1;
	for(int i=0;i> n;
	for(int i=0;i> s;
		int f1 = isPTA(s);
		int f2,f3;
		if(f1){
			f2 = isR2(s);
			f3 = isR3(s);
			if(f2 || f3){
				cout << "YES" << endl;
			}else{
				cout << "NO" << endl;
			}
		}else{
			cout << "NO" << endl;
		}
	}
	
	return 0;
}
1004 成绩排名 (20 分)
#include
using namespace std;
typedef struct score{
	char name[15];
	char classname[15];
	int scorenum;
}score;
int n;
bool cmp(score s1,score s2){
	if(s1.scorenum>s2.scorenum){
		return true;
	}else{
		return false;
	}
}

int main(){
	cin >> n;
	score s[n];
	for(int i=0;i> s[i].name >> s[i].classname >> s[i].scorenum;
	} 
	sort(s,s+n,cmp);
	cout << s[0].name << " " << s[0].classname< 
1005 继续(3n+1)猜想 (25 分) 
#include
using namespace std;
int K;
int a[105];
int b[10005];

int main(){
	cin >> K;
	for(int i=0;i> a[i];
	}
	for(int i=0;i=0;i--){
		//cout << a[i] << endl;
		if(b[a[i]]==0){
			if(flag == true){
				cout << " ";
			}
			cout << a[i];
			flag = true;
		}
	}
	return 0;
} 
1006 换个格式输出整数 (15 分)
#include
using namespace std;

int main(){
	int N;
	cin >> N;
	int b = N /100;
	int s = (N/10) % 10;
	for(int i=0;i 
1007 素数对猜想 (20 分) 
#include
using namespace std;
const int maxn = 1e5+5;
int a[maxn]={1,1,0};
int N;
int b[maxn];

int main(){
	cin >> N;
	for(int i=2;i<=N;i++){
		if(!a[i]){
			for(int j=2*i;j<=N;j+=i){
				a[j] = 1;
			}	
		}
	}	
	int count = 0;
	for(int i=0;i<=N;i++){
		if(!a[i]){
			b[count++] = i;
		}
	}
	
	int result = 0;
	for(int i=0;i 
1008 数组元素循环右移问题 (20 分) 
#include
using namespace std;
int N,M;

int main(){
	cin >> N >> M;
	M = M % N;
	int a[N];
	for(int i=0;i> a[i];
	}
	for(int i=0;i 
1009 说反话 (20 分) 
#include
using namespace std;
string s[100];

int main(){
	int j = 0;
	while((cin >> s[j])){
		j++; 
	}
	for(int i=j-1;i>=0;i--){
		if(i!=0){
			cout << s[i] << " ";	
		}else{
			cout << s[i] < 
1010 一元多项式求导 (25 分) 
#include
using namespace std;


int main(){
	int a,b;
	int j = 0;
	while((cin >> a && cin >> b)){
		if(j == 0 && b!=0){
			cout << a*b << " " << b-1;
		}else if(j==0 && b==0){
			cout << "0 0" << endl;
			break;
		}else if(j!=0 && b==0){
			break;
		}else if (j!=0 && b!=0){
			cout << " " << a*b << " " << b-1;
		}
		j++;
	}
	
	return 0;
} 
1011 A+B 和 C (15 分)
#include
using namespace std;

int main(){
	int T;
	cin >> T;
	long long A,B,C;
	for(int i=0;i> A >> B >> C; 
		if(A + B > C){
			cout << "Case #" << i+1 << ": true"< 
1012 数字分类 (20 分) 
#include
using namespace std;
int a[1005];	
int A1,A2,A3,A4,A5; 
int q = 1;
int main(){
	int N;
	int num = 0;
	bool flag1 =false,flag2=false,flag3=false,flag4=false,flag5=false;
	cin >> N;
	for(int i=0;i> a[i];
	}
	for(int i=0;iA5){
				A5 = a[i];
			}
			flag5 =true;
		}
	}
	if(flag1 == false){
		cout << "N" << " ";
	}else{
		cout << A1 << " ";
	}
	if(flag2 == false){
		cout <<"N" << " ";
	}else{
		cout < 
1013 数素数 (20 分) 
#include
using namespace std;
int a[200005]={1,1,0};
int b[50005];
int main(){
	int M,N;
	cin >> M >> N;
	for(int i=2;i<200002;i++){
		if(!a[i]){
			for(int j=2*i;j<200002;j = j+i){
				a[j] = 1;
			}
		}
	}
	int s = 0;
	for(int i=0;i<200002;i++){
		if(!a[i]){
			b[s++] = i;
		}
	}
	int sum = 0;
	for(int i=M;i<=N;i++){
		sum++;
		if(i!=N){
			if(sum!=0 && sum%10==0){
				cout << b[i-1] << endl;
			}else{
				cout << b[i-1] << " ";
			}	
		}else{
			cout << b[i-1];
		}
	}
	return 0;
} 
1014 福尔摩斯的约会 (20 分)
#include
using namespace std;
string str[7] = {"MON","TUE","WED","THU","FRI","SAT","SUN"};
int isupper(char c){
	if(c>='A' && c<='G'){
		return 1;
	}else{
		return 0;
	}
}

int isalpha(char c){
	if(c>='A' && c<='Z'){
		return 1;
	}else if(c>='a' && c<='z'){
		return 1;
	}else{
		return 0;
	}
}

int main(){
	string s1,s2,s3,s4;
	char day,hour;
	int minute;
	cin >> s1 >> s2 >> s3 >> s4;
	int size1 = min(s1.size(),s2.size());
	int size2 = min(s3.size(),s4.size());
	int count = 0;
	for(int i=0;i='0' && s1[i]<='9')||(s2[i]>='A' && s2[i]<='N')) && count!=0){
			hour = s1[i];
			break;
		}
	}	
	for(int i=0;i 
1015 德才论 (25 分) 
#include
using namespace std;
int N,L,H;
typedef struct score{
	int IDnum;
	int Dscore;
	int Cscore;
}score;
const int maxn = 1e5+5;
score DC1[maxn];
score DC2[maxn];
score DC3[maxn];
score DC4[maxn];
bool cmp(score s1,score s2){
	if(s1.Cscore+s1.Dscore>s2.Cscore+s2.Dscore){
		return true;
	}else if(s1.Cscore+s1.Dscore == s2.Cscore+s2.Dscore){
		if(s1.Dscore>s2.Dscore){
			return true;
		}else if (s1.Dscore == s2.Dscore){
			if(s1.IDnum> N >> L >> H;
	int first = 0,second =0,third =0,fourth =0;
	int nopass = 0;
	for(int i=0;i=H && c>=H){
			DC1[first].IDnum = a;
			DC1[first].Dscore = b;
			DC1[first++].Cscore = c;
		}else if(b>=H && c=c){
			DC3[third].IDnum = a;
			DC3[third].Dscore = b;
			DC3[third++].Cscore = c;
		}else{
			DC4[fourth].IDnum = a;
			DC4[fourth].Dscore = b;
			DC4[fourth++].Cscore = c;
		}
	}
	cout << N-nopass << endl;
	
	sort(DC1,DC1+first,cmp);
	sort(DC2,DC2+second,cmp);
	sort(DC3,DC3+third,cmp);
	sort(DC4,DC4+fourth,cmp);
	
	for(int i=0;i 
1016 部分A+B (15 分) 
#include
using namespace std;

int main(){
	long long a,b,Da,Db;
	int anum = 0, bnum = 0;
	cin >> a >> Da >> b >> Db;
	while(a>0){
		if(a%10==Da){
			anum++;
		}
		a = a/10;
	}
	while(b>0){
		if(b%10==Db){
			bnum++;
		} 
		b = b / 10;
	}
	long long result = 0;
	long long muti = 1;
	for(int i=0;i 
1017 A除以B (20 分) 
#include
using namespace std;
const int maxn = 1e3+5;

int a[maxn];

int main(){
	string s;
	int n;
	cin >> s;
	cin >> n;
	int result = 0;
	for(int i=0;i 
1018 锤子剪刀布 (20 分) 
#include
using namespace std;
int N;
int a[3];
int as[3];
int b[3];
int bs[3];
char x[3] = {'B','C','J'};

int main(){
	cin >> N;
	for(int i=0;i> s1 >> s2;
		if(s1=="C" && s2=="J"){
			a[1]++;
			as[0]++;
			bs[2]++;
		}else if(s1=="C" && s2=="C"){
			as[1]++;
			bs[1]++;
		}else if(s1=="C" && s2=="B"){
			b[0]++;
			as[2]++;
			bs[0]++;
		}else if(s1=="J" && s2=="C"){
			b[1]++;
			as[2]++;
			bs[0]++;
		}else if(s1=="J" && s2=="J"){
			as[1]++;
			bs[1]++;
		}else if(s1=="J" && s2=="B"){
			a[2]++;
			as[0]++;
			bs[2]++;
		}else if(s1=="B" && s2=="C"){
			a[0]++;
			as[0]++;
			bs[2]++;
		}else if(s1=="B" && s2=="J"){
			b[2]++;
			as[2]++;
			bs[0]++;
		}else if(s1=="B" && s2=="B"){
			as[1]++;
			bs[1]++;
		}
		getline(cin,s1);
	}

	for(int i=0;i<3;i++){
		if(i!=2){
			cout << as[i] << " ";
		}else{
			cout << as[i] << endl;
		}
	}
	for(int i=0;i<3;i++){
		if(i!=2){
			cout << bs[i] << " ";
		}else{
			cout << bs[i] << endl;
		}
	}
	int maxn = -1;
	int site = 0;
	for(int i=0;i<3;i++){
		if(a[i]>maxn){
			maxn = a[i];
			site = i;
		}
	}
	cout << x[site] <<" ";
	maxn = -1;
	site = 0;
	for(int i=0;i<3;i++){
		if(b[i]>maxn){
			maxn = b[i];
			site = i;
		}
	}
	cout << x[site] << endl;
	return 0;
}
1019 数字黑洞 (20 分)
#include
using namespace std;
int N;
int a[4];
int b[4];
int c[4];
bool cmp(int a,int b){
	return a>b;
}
int main(){
	cin >> N;
	a[0] = N / 1000;
	a[1] = (N / 100) % 10;
	a[2] = (N / 10) % 10;
	a[3] = N % 10;
	if((a[0]==a[1])&&(a[1]==a[2])&&(a[2]==a[3])){
		cout << a[0] << a[1] << a[2] << a[3] << " - " << a[0] << a[1] << a[2] << a[3] << " = 0000" << endl;
		return 0;
	}else{
		while(1){
			sort(a,a+4,cmp);
			cout << a[0] << a[1] << a[2] << a[3] << " - " ;
			for(int i=0;i<4;i++){
				b[i] = a[i];
			}
			sort(b,b+4);
			cout << b[0] << b[1] << b[2] << b[3] << " = ";
			for(int i=3;i>=0;i--){
				if(a[i]-b[i]<0){
					c[i] = a[i] + 10 - b[i];
					a[i-1]--;
				}else{
					c[i] = a[i] - b[i];
				}
			}	
			cout << c[0] << c[1] << c[2] << c[3] << endl;
			if(c[0]==6 && c[1]==1 && c[2]==7 && c[3]==4){	
				break;
			}else{
				for(int i=0;i<4;i++){
					a[i] = c[i];
				}
			}
		}
		
	}
	
	return 0;
}
1020 月饼 (25 分)
#include
using namespace std;
int N,D;
int maxn = 1005;
typedef struct mooncake{
	double num;
	double price;
	double singleprice;
}mooncake;
bool cmp(mooncake m1,mooncake m2){
	return m1.singleprice > m2.singleprice;
}
int main(){
	cin >> N >> D;
	mooncake m[N];
	for(int i=0;i> m[i].num;
	}
	for(int i=0;i> m[i].price;
	}
	for(int i=0;i 
1021 个位数统计 (15 分) 
#include
using namespace std;
int a[15];
int main(){
	string s;
	cin >> s;
	for(int i=0;i 
1022 D进制的A+B (20 分) 
#include
using namespace std;

long long A,B;
int D;

int main(){
	cin >> A >> B;
	if(A==0 && B==0){
		cout << "0" << endl;
		return 0;
	}
	cin >> D;
	long long result = A+B;
	stacka;
	while(result>0){
		a.push(result%D);
		result = result/D;
	} 
	while(!a.empty()){
		int num = a.top();
		cout << num;
		a.pop();
	}
	cout << endl;
	return 0;
} 
1023 组个最小数 (20 分)
#include
using namespace std;
int a[15];

int main(){
	for(int i=0;i<10;i++){
		cin >> a[i];
	}
	if(a[0]>0){
		int site =1;
		while(a[site]==0){
			site++;
		}
		cout << site;
		a[site]--;
		for(int i=0;i<10;i++){
			for(int j=0;j 
1024 科学计数法 (20 分) 
#include
using namespace std;

int main(){
	string str;
	cin >> str;
	int site = str.find('E');
	string n = str.substr(1,site-1);
	string e = str.substr(site+1);
	int en = stoi(e);
	if(str[0] == '-'){
		 cout << "-";
	}
	if(en>=0){
		cout << str[1];
		int j=2,cnt=0;
		for(j=2;j#include
using namespace std;
int start,N,K;
const int maxn = 1e5+5;
int data[maxn];
int eadd[maxn];
int listnum[maxn];

int main(){
	cin.tie(0);
	cout.tie(0);
	cin >> start >> N >> K;
	for(int i=0;i> addr;
		cin >> data[addr] >> eadd[addr];
	}
	int nextadd = start;
	int count = 0;
	while(nextadd!=-1){
		listnum[count++] = nextadd;
		nextadd = eadd[nextadd];
	}
	for(int i=0;i<(count-count%K);i+=K){
		reverse(listnum+i,listnum+i+K);
	}
	for(int i=0;i 
1026 程序运行时间 (15 分) 
#include
using namespace std;
const int CLK=100;
int main(){
	int C1,C2;
	cin >> C1 >> C2;
	int C = C2-C1;
	double times = C*1.0 / (CLK*1.0);
	int second = round(times);
	int hour = second / 3600;
	int minute = (second % 3600) / 60;
	int s = second % 60;
	if(hour<10){
		cout << "0" << hour << ":";
	}else{
		cout << hour << ":";
	}
	if(minute<10){
		cout << "0" << minute << ":";
	}else{
		cout << minute << ":";
	}
	if(s<10){
		cout << "0" << s << endl;
	}else{
		cout << s << endl;
	}
	
	return 0;
} 
1027 打印沙漏 (20 分)
#include
using namespace std;

int main(){
	int N;
	char c;
	cin >> N >> c;
	double n = sqrt((1+N)*1.0/2.0);
	int maxn = int(n);
	int rest = N -(2*maxn*maxn-1);
	
	for(int i=n;i>0;i--){
		for(int j=0;j<(2*maxn-2*i)/2;j++){
			printf(" ");
		}
		for(int j=0;j<2*i-1;j++){
			printf("%c",c);
		}
		printf("n");
	} 
	for(int i=2;i<=n;i++){
		for(int j=0;j<(2*maxn-2*i)/2;j++){
			printf(" ");
		}
		for(int j=0;j<2*i-1;j++){
			printf("%c",c);
		}
		printf("n");
	}
	cout << rest << endl;
	return 0;
}
1028 人口普查 (20 分)
#include
using namespace std;
int N;
int check(int year,int month ,int day){
	if(abs(2014-year>200)){
		return 0;
	}else if(abs(2014-year)==200 && (9-month)>0){
		return 0;
	}else if(abs(2014-year)==200 && (9-month)==0 && (6-day)>0){
		return 0;
	}else if(year-2014>0){
		return 0;
	}else if(year==2014 && month>9){
		return 0;
	}else if(year==2014 && month==9 && day>6){
		return 0;
	}else{
		return 1;
	}
}
const int maxn = 1e5+5;
typedef struct birth{
	string name;
	int year;
	int month;
	int day;
}birth;
birth b[maxn];
bool cmp(birth b1,birth b2){
	if(b1.year> N;
	int count = 0;
	for(int i=0;i> name >> birthday;
		int year = 0;
		int month = 0;
		int day = 0;
		for(int i=0;i<4;i++){
			year = year*10 +birthday[i]-'0';
		}
		for(int i=5;i<7;i++){
			month = month*10 + birthday[i] -'0';
		}
		for(int i=8;i<10;i++){
			day = day*10 + birthday[i] -'0';
		} 
		if(check(year,month,day)){
			b[count].name = name;
			b[count].year = year;
			b[count].month = month;
			b[count++].day = day;
		}
	}
	sort(b,b+count,cmp);
	if(count == 0){
		cout << "0" << endl;
	}else{
		cout << count << " " << b[0].name << " " << b[count-1].name < 
1029 旧键盘 (20 分) 
#include
using namespace std;
int a[55];
int isUpper(char c){
	if(c>='A' && c<='Z'){
		return 1;
	}else{
		return 0;
	} 
}

int isdigit(char c){
	if(c>='0' && c<='9'){
		return 1;
	}else{
		return 0;
	}
}

int isLower(char c){
	if(c>='a' && c<='z'){
		return 1;
	}else{
		return 0;
	}
}

int main(){
	string s1,s2;
	cin >> s1 >> s2;
	int j=0;
	for(int i=0;i 
1030 完美数列 (25 分) 
#include "iostream"
#include "string"
  
#include "algorithm"
  
using namespace std;
  
int main(){
  
    int N,maxCount=1;
    double p,a[100010];
  
    scanf("%d %lf",&N,&p);
    for (int i=0;imaxCount)
            {
                maxCount=j-i+1;
            }
        }
    }
    cout< 
1031 查验身份z (15 分) 
#include
using namespace std;
int a[20] = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
int check[11] = {1,0,10,9,8,7,6,5,4,3,2};

int isdigit(char c){
	if(c>='0' && c<='9'){
		return 1;
	}else{
		return 0;
	}
}
int main(){
	int N;
	cin >> N;
	int count = 0;
	for(int i=0;i> str;
		int result = 0;
		bool flag = true;
		for(int j=0;j 
1032 挖掘机技术哪家强 (20 分) 
#include
using namespace std;
const int maxn = 1e5+5;
int s[maxn];
int main(){
	int N;
	cin >> N;
	for(int i=0;i> a >> score;
		s[a] += score;
	}
	int maxs = 0;
	int num = 0;
	for(int i=0;imaxs){
			maxs = s[i];
			num = i;
		}
	}
	cout << num <<" " << maxs< 
1033 旧键盘打字 (20 分) 
#include
using namespace std;
int a[50];
int isupper(char c){
	if(c>='A' && c<='Z'){
		return 1;
	}else{
		return 0;
	}
}
int islower(char c){
	if(c>='a' && c<='z'){
		return 1;
	}else{
		return 0;
	}
} 
int isdigit(char c){
	if(c>='0' && c<='9'){
		return 1;
	}else{
		return 0;
	}
}
string bad,str;
int main(){
	getline(cin,bad);
	getline(cin,str);
	for(int i=0;i 
1034 有理数四则运算 (20 分) 
#include
using namespace std;
long long gcd(long long a,long long b){
	long long tmp;
	if(a=b){
			int p = a/b;
			int q = a%b;
			if(q!=0){
				cout << p <<" " << q << "/" << b;
			}else{
				cout << p ;
			}
		}else{
			cout << a << "/" << b;
		}
		if(flag){
			cout <<")";
		}
	}
}

int main(){
	char str1[50],str2[50];
	cin >> str1 >> str2;
	long long a,b,c,d;
	sscanf(str1,"%lld/%lld",&b,&a);
	sscanf(str2,"%lld/%lld",&d,&c);

	long long plus1 = b*c + a*d;
	long long plus2 = a*c;
	long long minus1 = b*c - a*d;
	long long minus2 = a*c;
	long long mutl1 = b*d;
	long long mutl2 = a*c;
	long long div1 = b*c;
	long long div2 = a*d;
	process(b,a,0);
	cout << " + " ;
	process(d,c,0);
	cout << " = " ;
	process(plus1,plus2,0);
	cout << endl;
	process(b,a,0);
	cout << " - " ;
	process(d,c,0);
	cout << " = " ;
	process(minus1,minus2,0);
	cout << endl;
	process(b,a,0);
	cout << " * " ;
	process(d,c,0);
	cout << " = " ;
	process(mutl1,mutl2,0);
	cout << endl;
	process(b,a,0);
	cout << " / " ;
	process(d,c,0);
	cout << " = " ;
	process(div1,div2,1);
	cout << endl;
	return 0;
} 
1035 插入与归并 (25 分)
#include
using namespace std;
int N;
const int maxn = 1e2+5;
int a[maxn];
int b[maxn];

int main(){
	cin >> N;
	for(int i=0;i> a[i];
	}
	for(int i=0;i> b[i];
	}
	
	int j=0;
	while(j 
1036 跟奥巴马一起编程 (15 分) 
#include
using namespace std;
string str;
int N;

int main(){
	cin >> N;
	cin >> str;
	for(int i=0;i 
1037 在霍格沃茨找零钱 (20 分) 
#include
using namespace std;
string str1,str2;
int a[3];
int b[3];
int c[3];
bool check(int a[3],int b[3]){
	if(a[0]> str1 >> str2;
	int site1 = str1.find('.');
	int site2 = str1.find('.',site1+1);
	for(int i=0;i 
1038 统计同成绩学生 (20 分) 
#include
using namespace std;
int N,K;
int a[105];
int main(){
	cin >> N;
	int score;
	for(int i=0;i> K;
	for(int i=0;i 
1039 到底买不买 (20 分) 
#include
using namespace std;
string str1,str2;
int a[105];
int b[105];
int isupper(char c){
	if(c>='A' && c<='Z'){
		return 1;
	}else{
		return 0;
	}
}
int islower(char c){
	if(c>='a' && c<='z'){
		return 1;
	}else{
		return 0;
	}
}
int isdigit(char c){
	if(c>='0' && c<='9'){
		return 1;
	}else{
		return 0;
	}
}
int main(){
	cin >> str1 >> str2;
	for(int i=0;i 
1040 有几个PAT (25 分) 
#include
using namespace std;
const long long M = 1000000007;
long long result;
const int maxn = 1e5+5;
string str;


int main(){
	cin >> str;
	int Tcount = 0;
	int Pcount = 0;
	for(int i=0;i 
1041 考试座位号 (15 分) 
#include
using namespace std;
int N;
int M;

typedef struct test{
	string num;
	int testnum;
	int normalnum;
}test;

const int maxn = 1e3 +5;
test t[maxn];

bool cmp(test t1,test t2){
	if(t1.testnum> N;
	for(int i=0;i> t[i].num >> t[i].testnum >> t[i].normalnum;
	}
	sort(t,t+N,cmp);
	cin >> M;
	for(int i=0;i> a;
		cout << t[a-1].num << " " << t[a-1].normalnum < 
1042 字符统计 (20 分) 
#include
using namespace std;
int A[60];
int isupper(char c){
	if(c>='A' && c<='Z'){
		return 1;
	}else{
		return 0;
	}
}
int islower(char c){
	if(c>='a' && c<='z'){
		return 1;
	}else{
		return 0;
	}
}

int main(){
	string str;
	getline(cin,str);
	for(int i=0;imaxn){
			maxn = A[i];
			site = i;
		}
	}
	printf("%c %d",site+'a',maxn);
	return 0;
}
1043 输出PATest (20 分)
#include
using namespace std;
string str;
int a[6];
int main(){
	cin >> str;
	for(int i=0;i0){
		for(int i=0;i<6;i++){
			if(i==0 && a[i]>0){
				a[i]--;
				count--;
				cout << "P";
			}else if(i==1 && a[i]>0){
				a[i]--;
				count--;
				cout << "A";
			}else if(i==2 && a[i]>0){
				a[i]--;
				count--;
				cout << "T";
			}else if(i==3 && a[i]>0){
				a[i]--;
				count--;
				cout << "e";
			}else if(i==4 && a[i]>0){
				a[i]--;
				count--;
				cout << "s";
			}else if(i==5 && a[i]>0){
				a[i]--;
				count--;
				cout << "t";
			}
		}
	}
	return 0;
} 
1044 火星数字 (20 分)
#include
using namespace std;
string D[13] = {"tret","jan", "feb", "mar", "apr", "may", "jun", "jly", "aug", "sep", "oct", "nov", "dec"};
string G[13] = {"","tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mer", "jou"};
int isdigit(char c){
	if(c>='0' && c<='9'){
		return 1;
	}else{
		return 0;
	}
}
int iscase(char c){
	if(c>='a' && c<='z'){
		return 1;
	}else{
		return 0;
	}
}
int main(){
	int N;
	cin >> N;
	string s;
	getline(cin,s);
	
	for(int i=0;i 
1045 快速排序 (25 分) 
#include
using namespace std;
const int maxn = 1e5+5;
int minx[maxn] = {0};
int maxx[maxn] = {0};
int a[maxn];
const int maxnum = INT_MAX;
int b[maxn];
int main(){
	int N;
	cin >> N;
	for(int i=1;i<=N;i++){
		cin >> a[i];
	}
	minx[N+1] = maxnum;
	maxx[N+1] = maxnum;
	for(int i=1;i<=N;i++){
		maxx[i] = max(maxx[i-1],a[i]);
	}
	for(int i=N;i>=1;i--){
		minx[i] = min(minx[i+1],a[i]);
	}
	int cnt = 0;
	for(int i=1;i<=N;i++){
		if(a[i]>maxx[i-1] && a[i] 
1046 划拳 (15 分) 
#include
using namespace std;
int N;
int main(){
	cin >> N;
	int count1 = 0,count2 = 0;
	for(int i=0;i> a >> b >> c >> d;
		bool flag1=false,flag2=false;
		if(b==(a+c)){
			flag1=true;
		}
		if(d==(a+c)){
			flag2=true;
		}
		if(flag1 && flag2){
			continue;
		}else if(!flag1 && !flag2){
			continue;
		}else if(!flag1 && flag2){
			count1++;
		}else if(flag1 && !flag2){
			count2++;
		}
	}
	cout << count1 << " " << count2;
	return 0;
} 
1047 编程团体赛 (20 分)
#include
using namespace std;
int N;
const int maxn = 1e3+5;
int a[maxn];
int main(){
	cin >> N;
	for(int i=0;i> name;
		int score;
		cin >> score;
		int site = name.find('-');
		int groupnum = 0;
		for(int i=0;imaxs){
			maxs = a[i];
			number = i;
		}
	}
	cout << number << " " << maxs;
	return 0;
} 
1048 数字加密 (20 分)
#include
using namespace std;
string str1,str2;
int main(){
	cin >> str1 >> str2;
	int len1 = str1.size();
	int len2 = str2.size();
	int maxlen = max(len1,len2); 
	reverse(str1.begin(),str1.end());
	reverse(str2.begin(),str2.end());
	
	if(len1len2){
		str2.append(len1-len2,'0');
	}
	//cout << str1 << endl << str2 << endl;
	string result="";
	for(int i=0;i=0;i--){
			cout << result[i];	
	}
	return 0;
}
1049 数列的片段和 (20 分)
#include
using namespace std;

int main(){
	double a;
	int N;
	scanf("%d",&N);
	long long result = 0;
	for(int i=1;i<=N;i++){
		scanf("%lf",&a);
		result = result + ((long long)(1000.0*a))*(i) * (N-i+1);
	}
	double r = result*1.0/1000.0;
	printf("%.2lf",r);
	
	return 0;
}
1050 螺旋矩阵 (25 分)
#include
using namespace std;
int N;
int m,n;
int b[10005];
int main(){
	cin >> N;
	for(int i=(ceil)(sqrt(N));i<=N;i++){
		if(N%i==0){
			m = i;
			n = N/i;
			break;
		}
	} 
	for(int i=0;i> b[i];
	}
	sort(b,b+N);
	int a[m+1][n+1];
	memset(a,0,sizeof(a));
	int i = 0;
	int j = 0;
	while(N){
		while(j=0 && !a[i][j]){
			a[i][j--] = b[--N];
		}
		j++;
		i--;
		while(i>=0 && !a[i][j]){
			a[i--][j] = b[--N];
		}
		i++;
		j++;
	}
	for(int i=0;i					
										


					

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5702455.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存