PAT练习(三)

1036B 跟奥巴马一起编程 (15 分)

https://pintia.cn/problem-sets/994805260223102976/problems/994805285812551680

#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
int main(){
	int row,column;
	char c;
	cin>>column>>c;
	row = round(column/2.0);
	for(int i=0;i<column;i++){
		 cout<<c;
	} 
	cout<<endl;
	for(int j=1;j<row-1;j++){
		cout<<c;
		for(int i =0;i<column-2;i++){
			cout<<" ";
		}
		cout<<c<<endl;
	}
	for(int i=0;i<column;i++){
		 cout<<c;;
	} 
	return 0;
} 

1027B 打印沙漏 (20 分)

https://pintia.cn/problem-sets/994805260223102976/problems/994805294251491328

#include<cstdio>
#include<iostream>
using namespace std;
int main(){
	int n;
	char c;
	cin>>n>>c;
	int num=1;
	int row=0;
	int sum=1;
	do{
		num=num+2;
		sum = sum+2*num;
		row = row+1;
	}while(sum<n);
	for(int i=1;i<=row;i++){
		int length = num-2*i;
		for(int k =1;k<i;k++){
			cout<<" ";
		}
		for(int j=0;j<length;j++){

			cout<<c;
		}
		cout<<endl;
	}
	for(int i=1;i<row;i++){
		int length = 1+2*i;
		for(int k =0;k<((num-2)-length)/2;k++){
			cout<<" ";
		}
		for(int j=0;j<length;j++){

			cout<<c;
		}
		cout<<endl;
	}
	cout<<(n-(sum-2*num));
	return 0;
} 

1031A Hello World for U (20 分)

https://pintia.cn/problem-sets/994805342720868352/problems/994805462535356416

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int main(){
	string s;
	cin>>s;
	int n = s.length();
	int n1,n2;
	n1 = (n+2)/3;
	n2 = n-n1*2;
	int i=0;
	for(;i<n1-1;i++){
		cout<<s[i];
		for(int j=0;j<n2;j++){
			cout<<" ";
		}
		cout<<s[n-i-1]<<endl;
	}
	for(int j=0;j<n2+2;j++){
		cout<<s[i+j];
	}
	return 0;
}

1022B D进制的A+B (20 分)

https://pintia.cn/problem-sets/994805260223102976/problems/994805299301433344

#include<cstdio>
#include<iostream>
using namespace std;
int main(){
	int a,b,c,n;
	cin>>a>>b>>n;
	c=a+b;
	int num=0;
	int temp=0;
	int i=0;
	int arr[82]={0};
	if(c==0){
		cout<<0;
	}
	else{
		while(c){
			temp=c%n;
			c = c/n;
			arr[i++] = temp;
		}
		for(;i>0;i--){
			cout<<arr[i-1];
		}
	}		
	return 0;
} 

1037B 在霍格沃茨找零钱 (20 分)

https://pintia.cn/problem-sets/994805260223102976/problems/994805284923359232

#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
int main(){
	int a[3],p[3],rs,rs1,rs2;
	scanf("%d.%d.%d %d.%d.%d",&p[0],&p[1],&p[2],&a[0],&a[1],&a[2]);
	rs1 = a[0]*17*29+a[1]*29+a[2];
	rs2 = p[0]*17*29+p[1]*29+p[2];
	rs = rs1-rs2;
	cout<<(rs/17/29)<<".";
	rs=rs%(29*17);
	cout<<abs((rs/29))<<".";
	rs=rs%29;
	cout<<abs(rs);
	return 0;
}

1019A General Palindromic Number (20 分)

https://pintia.cn/problem-sets/994805342720868352/problems/994805487143337984
一个答案错误,两个段错误,11分

#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
bool isTrue(int arr[],int i){
	for(int j=0;j<i/2;j++){
		if(arr[j]!=arr[i-1]){
			return false;
		}
	}
	return true;	
}
int main(){
	int temp[9]={0};
	int n,b;
	scanf("%d %d",&n,&b);
	int i=0;
	while(n){
		temp[i++]=n%b;
		n=n/b;
	}
	if(i>1){
		if(isTrue(temp,i)){
			cout<<"Yes"<<endl;
		}
		else cout<<"No"<<endl;
		for(int j=i;j>1;j--){
			cout<<temp[j-1]<<" ";
		}
		cout<<temp[0];
	}
	if(i==1){
		cout<<"Yes"<<endl;
		cout<<temp[i-1];
	}
	if(i==0){
		cout<<"Yes"<<endl;
		cout<<0;
	}	
	return 0;
}

1027A Colors in Mars (20 分)

https://pintia.cn/problem-sets/994805342720868352/problems/994805470349344768

#include<cstdio>
#include<iostream>
using namespace std;
void show(int a){
	if(a>=0&&a<=9){
		cout<<a;
	}
	else if(a==10){
		cout<<"A";
	}
	else if(a==11){
		cout<<"B";
	}
	else{
		cout<<"C";
	}
}
int main(){
	int r,g,b;
	cin>>r>>g>>b;
	cout<<"#";
	int i=0,j=0;
	i=r/13;
	j=r%13;
	show(i);
	show(j);
	i=g/13;
	j=g%13;
	show(i);
	show(j);
	i=b/13;
	j=b%13;
	show(i);
	show(j);	
	cout<<endl;
	return 0;
	
}

1058A A+B in Hogwarts (20 分)

https://pintia.cn/problem-sets/994805342720868352/problems/994805416519647232

#include<cstdio>
#include<iostream>
using namespace std;
int main(){
	int g1,g2,g,s1,s2,s,k1,k2,k;
	scanf("%d.%d.%d %d.%d.%d",&g1,&s1,&k1,&g2,&s2,&k2);
	int i1=0,i2=0;
	k=k1+k2;
	i1=k/29;
	k=k%29;
	s=s1+s2+i1;
	i1=s/17;
	s=s%17;
	g=g1+g2+i1;
	cout<<g<<"."<<s<<"."<<k<<endl;
	return 0;
}

1006B 换个格式输出整数 (15 分)

https://pintia.cn/problem-sets/994805260223102976/problems/994805318855278592

#include<cstdio>
#include<iostream>
using namespace std;
int main(){
	int n;
	cin>>n;
	int bai = n/100;
	int shi = (n%100)/10;
	int ge = n%10;
	for(int i=0;i<bai;i++){
		cout<<"B";
	}
	for(int i=0;i<shi;i++){
		cout<<"S";
	}
	for(int i =1;i<=ge;i++){
		cout<<i;
	}
	return 0;
	
}

1021B 个位数统计 (15 分)

https://pintia.cn/problem-sets/994805260223102976/problems/994805300404535296

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
	int arr[10]={0}; 
	string n;
	cin>>n;
	int len = n.length();
	if(n=="0"){
		cout<<0<<":"<<1;
	}
	else{
		
		for(int i = 0;i < len;i ++) {
        	arr[n[i]-'0']++;
   		 }
		for(int i=0;i<10;i++){
			if(arr[i]!=0){
				printf("%d:%d\n",i,arr[i]);
			}
		}
	}	
	return 0;
}
发布了43 篇原创文章 · 获赞 4 · 访问量 6135

猜你喜欢

转载自blog.csdn.net/didadu/article/details/98946014