PTA L1 011-020

本文展示了C++中的几个基础编程示例,涉及字符数组操作、循环、条件判断、整数运算、字符串处理以及使用数据结构如set和vector解决特定问题。
摘要由CSDN通过智能技术生成

L1-011

#include<iostream>
using namespace std;

const int N=10005;
char a[N],b[N];
int al=0,bl=0;

int main()
{
	char temp=' ';
	while(temp!='\n'){
		temp=getchar();
		a[al]=temp;
		al++;
	}
	temp=' ';
	while(temp!='\n'){
		temp=getchar();
		b[bl]=temp;
		bl++;
	}
	for(int i=0;i<al;i++){
		for(int j=0;j<bl;j++)
			if(a[i]==b[j])
				a[i]='\n';
	}
	for(int i=0;i<al;i++)
		if(a[i]!='\n')
			cout<<a[i];
	return 0;
}

L1-012

#include<iostream>
using namespace std;

int main()
{
	int ans=1;int n;
	cin>>n;
	for(int i=1;i<=n;i++)
		ans*=2;
	cout<<"2^"<<n<<" = "<<ans; 
	return 0;
}

L1-013

#include<iostream>
using namespace std;

int main()
{
	int sum=0,n,temp=1;
	cin>>n;
	for(int i=1;i<=n;i++){
		temp*=i;
		sum+=temp;
	}
	cout<<sum;
	return 0;
}

L1-014

#include<iostream>
using namespace std;

int main()
{
	cout<<"This is a simple problem.";
	return 0;
}

L1-015

#include<iostream>
using namespace std;

int main()
{
	int n;char c;
	cin>>n>>c; 
	for(int i=1;i<=(n+1)/2;i++){
		for(int j=1;j<=n;j++)
			cout<<c;
		cout<<endl;
	}
	return 0;
}

L1-016

#include<iostream>
#include<map>
#include<string>
using namespace std;

int main()
{
	map<int,char> mp;
	mp[0]='1';mp[1]='0';mp[2]='X';mp[3]='9';mp[4]='8';
	mp[5]='7';mp[6]='6';mp[7]='5';mp[8]='4';mp[9]='3';
	mp[10]='2';
	int n;
	cin>>n;
	int a[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
	bool flag=true;
	while(n--){
		string s;
		cin>>s;
		int sum=0;
		bool FLAG=true;
		for(int i=0;i<17;i++){
			if(s[i]<'0'||s[i]>'9')
				FLAG=false;
			sum+=(s[i]-'0')*a[i];
		}
		if(mp[sum%11]!=s[17]||!FLAG){
			flag=false;
			 cout<<s<<endl;
		}
	}
	if(flag)
		cout<<"All passed";
	return 0;
}

L1-017

#include<iostream>
#include<map>
#include<string>
using namespace std;

int main()
{
	string s;
	cin>>s;
	bool fu=false,ou=false;
	double ans=1,cnt=0;
	for(int i=0;i<(int)s.size();i++){
		if(i==0&&s[i]=='-'){
			fu=true;
		}
		else if(s[i]=='2'){
			cnt++;
		}
		if(i==(int)s.size()-1&&(s[i]-'0')%2==0){
			ou=true;
		}
	} 
	if(fu&&!ou)
		ans=(double)cnt*150.0/(s.size()-1);
	else if(ou&&!fu)
		ans=(double)cnt*200.0/(s.size());
	else if(ou&&fu)
		ans=(double)cnt*300.0/(s.size()-1);
	else
		ans=(double)cnt*100.0/(s.size());
	printf("%.2lf%%",ans);
	return 0;
}

L1-018

#include<iostream>
#include<map>
#include<string>
using namespace std;

int main()
{
	string s;
	cin>>s;
	int h=(s[0]-'0')*10+s[1]-'0',m=(s[3]-'0')*10+s[4]-'0';
	int cnt;
	if((h>12&&h<24)||(h==12&&m!=0)){
		cnt=h-12;
		if(m)
			cnt++;
		for(int i=1;i<=cnt;i++)
			cout<<"Dang";
	}
	else{
		cout<<"Only "<<s<<".  Too early to Dang." ;
	}
	return 0;
}

L1-019

#include<iostream>
#include<map>
#include<string>
using namespace std;

const int N=105;
int q[N],w[N],e[N],r[N];

int main()
{
	int a,b,A=0,B=0;
	cin>>a>>b;
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>q[i]>>w[i]>>e[i]>>r[i];
	for(int i=1;i<=n;i++){
		if(w[i]==q[i]+e[i]&&r[i]!=q[i]+e[i]){
			A++;
		}
		else if(w[i]!=q[i]+e[i]&&r[i]==q[i]+e[i]){
			B++;
		}
		if(A==a+1){
			cout<<"A"<<endl<<B; 
			return 0;
		}
		else if(B==b+1){
			cout<<"B"<<endl<<A;
			return 0; 
		}
	}
	return 0;
}

L1-020

#include<iostream>
#include<map>
#include<string>
#include<set> 
#include<vector>
using namespace std;

int main()
{
	int n;
	cin>>n;
	set<string> have;
	vector<string> temp;
	for(int i=1,m;i<=n;i++){
		cin>>m;
		temp.clear();
		string s;
		for(int j=1;j<=m;j++){
			cin>>s;
			temp.push_back(s);
		}
		bool flag=true;
		for(int j=0;j<m-1&&flag;j++)
			for(int q=j+1;j<=m-1&&flag;q++)
				if(temp[j]!=temp[q])
					flag=false;
		if(flag==false){
			for(int j=0;j<m;j++)
				have.insert(temp[j]);
		}	
	} 
	int k;
	cin>>k;
	bool flag=false;
	vector<string> check(k);
	for(int i=0;i<k;i++)
		cin>>check[i]; 
	set<string> ans;
	for(int i=0;i<k;i++){
		if(have.count(check[i])==0){
			if(ans.count(check[i])==0){
				if(flag==false)
					cout<<check[i];
				else
					cout<<' '<<check[i];
				flag=true;
				ans.insert(check[i]);
			}
		}
	}
	if(!flag)
		cout<<"No one is handsome";
	return 0;
}

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值