说实话呢,这道题我也没太弄明白那些数据的卡点是个什么玩意,一会是80PAC,一会是AC
我是用字符串输入处理的,还算简便吧,具体的解释在代码中注释呈现吧
AC代码呈上
#include<bits/stdc++.h>
using namespace std;
int lvl=0;
string s;
int a[11];
int temp;
int main()
{
cin>>s;
int len=s.size();
for(int i=0;i<=len-1;i++)
{
if(s[i]!='-')
{
a[++lvl]=s[i]-'0';
}
}//将字符串的数字都压入int数组中去
// for(int i=1;i<=10;i++) cout<<a[i];
int temp=a[10];//记录末尾
int ans=0;
int mod=11;
for(int i=1;i<=9;i++)
{
ans+=a[i]*i;
}//记录权值
if(ans%mod==10&&s[len-1]=='X')
{
cout<<"Right";
return 0;
}//特殊判断10与X的情况,下面的那个if也是
if(ans%mod==10&&s[len-1]!='X')
{
for(int i=0;i<=len-2;i++) cout<<s[i];
cout<<"X";
return 0;
}
if(ans%mod!=10)//不是10的时候的判断
{
if(ans%mod==temp) cout<<"Right";
else
{
for(int i=0;i<=len-2;i++) cout<<s[i];
cout<<ans%mod;
}
}
return 0;
}