团体程序设计天梯赛 L1-011~L1-015

L1-011

思路:

用map存不需要输出的字符

代码:

#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
string s;
map<char,bool> mp;
int main(){
	getline(cin,s);
	char c=getchar();
	while(c!='
'&&~c) mp[c]=true,c=getchar();
	for(char c:s) if(!mp[c]) putchar(c);
	return 0;
}

L1-012

思路:

1<<n==2^n当然也可以用pow或者写循环

代码:

#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
int main(){
	ios::sync_with_stdio(false); cin.tie(nullptr);
	int n; cin>>n; cout<<"2^"<<n<<" = "<<(1<<n);
	return 0;
}

L1-013

思路:

按题意计算即可,可以用前缀积简化代码

代码:

#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
int ans[15];
int main(){
	ios::sync_with_stdio(false); cin.tie(nullptr);
	ans[0]=1;
	for(int i=1;i<15;i++) ans[i]=i*ans[i-1];
	int n,sum=0; cin>>n;
	for(int i=1;i<=n;i++) sum+=ans[i];
	cout<<sum;
	return 0;
}

L1-014

思路:

按题意输出

代码:

#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
int main(){
	ios::sync_with_stdio(false); cin.tie(nullptr);
	cout<<"This is a simple problem.";
	return 0;
}

L1-015

思路:

浮点数+0.5再向下取整就可以达到四舍五入的功能

代码:

#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,m; cin>>m; n=m/2.0+0.5;
	char c=getchar(); c=getchar();
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++) putchar(c);
		putchar('
');
	}
	return 0;
}
原文地址:https://www.cnblogs.com/yuhan-blog/p/12308727.html