蒟蒻来写题解了
说是水题其实也就是慢慢写能写出来的题吧,这道题有挺多坑的,要注意的点:
1.除了第一位数是个位数,直接输出,其他的个位数都要补0达到两位,例如:925和2509,这里只是单纯讨论输出问题
2.还有一个很多人理解题意容易误解的地方就是925不是比259大吗,为什么输出925,他这里是9和25比较,9比较小,所以就排前面了,和整个数大小无关
3.还有一个坑,读题要仔细,another算1处理,first,a,也算1,both,second算2,third算3
废话不多说,上代码,蒟蒻第一次写洛谷题解,没想到提交不了,只能来CSDN了,欢迎大佬指正错误
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
int i;
int t[100]={0};
for(i=0;i<6;i++)
{
cin>>s;
if(s=="one"||s=="another"||s=="a"||s=="first") t[i]=1;
if(s=="two"||s=="both"||s=="second") t[i]=2;
if(s=="three"||s=="third") t[i]=3;
if(s=="four") t[i]=4;
if(s=="five") t[i]=5;
if(s=="six") t[i]=6;
if(s=="seven") t[i]=7;
if(s=="eight") t[i]=8;
if(s=="nine") t[i]=9;
if(s=="ten") t[i]=10;
if(s=="eleven") t[i]=11;
if(s=="twelve") t[i]=12;
if(s=="thirteen") t[i]=13;
if(s=="fourteen") t[i]=14;
if(s=="fifteen") t[i]=15;
if(s=="sixteen") t[i]=16;
if(s=="seventeen") t[i]=17;
if(s=="eighteen") t[i]=18;
if(s=="nineteen") t[i]=19;
if(s=="twenty") t[i]=20;
}
int j=0,a[7];
for(i=0;i<6;i++)
{
if(t[i]!=0)
{
a[j]=t[i];
++j;
}
}
for(i=0;i<j;i++)
{
a[i]=(a[i]*a[i])%100;
}
int x;
for(i=0;i<j-1;i++)
{
if(a[i]>a[i+1])
{
x=a[i];
a[i]=a[i+1];
a[i+1]=x;
}
}
int flag=0;
if(j!=0)
{
for(i=0;i<j;i++)
{
if(flag)
{
printf("%.2d",a[i]);
}
else
{
if(a[i])
{
printf("%d",a[i]);
flag=1;
}
}
}
}
else cout<<0;
}