解题思路:
1.创建字符 累加器 计算器
2.输入变量a
3.循环length减一次
4.如果字符为数字 那么累加器累加 计算器累加
5.创建变量除以11算余数
6.如果余数小于10并与最后的数相同 那么输出right
7.如果等于10并最后一个数为x 那么输出right
8.循环length减一次 输出字符
9.如果余数小于10输出数字
10否则输出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()-1;i++)
{
if(a[i]>='0'&&a[i]<='9')//如果当前字符是数字的话
{
sum=sum+(a[i]-48)*num;//累加器累加
num++;//计数器增加
}
}
int ans=sum%11;//计算余数
if(ans<10&&ans==a[a.length()-1]-48)//如果余数小于10,并且和最后一个字符相等
cout<<"Right";//输出right
else if(ans==10&&a[a.length()-1]=='X')//如果余数为10,并且最后一个字符是x
cout<<"Right";//输出right
else//如果不符合上述要求输出前面的内容
{
for(int i=0;i<a.length()-1;i++)
cout<<a[i];
if(ans<10)//如果余数小于10输出数字
cout<<ans;//否则输出x
else
cout<<"X";
}
return 0;
}