解题思路:
1:首先输入字符串
2:输入后判断是否合法
{
合法输出right
不合法继续执行
}
3:输出正确的号码
{
判断最后一位应该输X还是数字
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a;
int sum=0,num=1;//sum用来计算加数,num用来计算乘几
cin>>a;
for(int i=0;i<=a.length()-2;i++)
{
if(a[i]>='0'&&a[i]<='9')
{
sum=sum+(a[i]-'0')*num;
num++;
}
}
int ans=sum%11;//ans用来保存计算后总数模11后的数字
if(ans<10&&ans==a[12]-'0'||(ans==10&&a[12]=='X'))//如果符合标准输出right
{
cout<<"Right";
}
else//否则判断它应该输出X还是ans
{
for(int i=0;i<=11;i++)
cout<<a[i];//输出前十一位字符
if(ans==10)//判断最后一位应该输X还是数字
cout<<"X";
else
cout<<ans;
}
return 0;
}