解法一:
#include<bits/stdc++.h>
using namespace std; 思路:把最后一个字符单独摘出来研究
int main()
{
char st[15];int s=0,t=0, g,m;
for(int i=1;i<=12;i++)
{ cin>>st[i]; //也可以 scanf("%c",&a[i]);
if(st[i]!='-')
{ t++;
s+=(st[i]-'0')*t;} //把字符数字转换为数字;
}
cin>>st[13];
if(st[13]=='X')
g=10;
else
g=st[13]-'0'; //也可以g=st[13]-48; 因为'0'的ASCII码值为48;
m=s%11;
if(g==m) //比较两个数字是否相等;
cout<<"Right";
else
{ for(int i=1;i<=12;i++)
cout<<st[i];
if(m==10)
cout<<'X';
else
cout<<m;}
return 0;
}
解法二:
#include<bits/stdc++.h>
using namespace std;
int main() 思路:整体研究
{
char st[15];int s=0,t=0,m;
for(int i=1;i<=13;i++)
{ st[i]=getchar();
if(st[i]!='-'&&i!=13)
{ t++;
s+=(st[i]-'0')*t;}
}
m=s%11;
char h=st[13];
st[13]=m==10? 'X': m+'0' ; //三目运算符;把数字转换为数字字符
if(h==st[13]) //比较两个字符是否相等
cout<<"Right";
else
for(int i=1;i<=13;i++)
cout<<st[i];
return 0;
}