Atcoder171 ABC 解题报告

171 Tasks

这次的AB两题简直太水了,直接贴代码

A题:

#include 
using namespace std;

int main()
{
	string s;
	cin>>s;
	
	for(int i=0;i<s.size();i++)
	 if(s[i]>='A'&&s[i]<='Z') s[i]='A';
	  else s[i]='a';
	
	cout<<s<<endl;
	return 0;
 } 

B题

#include 
using  namespace std;

int n,k;
int a[1000+5];
int sum;
int main()
{
	cin>>n>>k;
	for(int i=1;i<=n;i++)  cin>>a[i];
	
	sort(a+1,a+n+1);
	
	for(int i=1;i<=k;i++) sum+=a[i];
	
	
	cout<<sum;
	return 0;
}

C题

C题别看题目很长,其实就是一个26进制的问题,但要注意的是最大可以到达26
然后我们找一下规律,两位数需要一次循环,三位数需要两次循环,四位数要三次循环,n位数需要(n-1)次循环(听不懂的看代码,一看就懂)

#include 
using namespace std;

int main()
{
	long long n;
	string s="";//串清零
	cin>>n;
	
	while(n--)//for 1 to n-1 也可  //假设读进来是2
	{
		s=s+char(n%26+'a');//char是强制转字符类型 //①s=0+char(2+97)=0+char(99)=0+'b'=b   这下应该很清楚了吧
		n/=26;//26进制
	} 
	cout<<s;
	return 0;
 } 

你可能感兴趣的:(Atcoder)