#include <cmath>
#include <cstdio>
#include <algorithm>
#include <iostream>
using namespace std;
char str[15];
int cnt,sum;
int main()
{
scanf("%s",str+1); //数据输入,下标从1开始
for(int i=1;i<=12;i++)
{
if(str[i]!='-')
{
cnt++;
sum+=(str[i]-'0')*cnt;
}
}
if(sum%11==(str[13]-'0')||(sum%11==10&&str[13]=='X')) //两个字符相减,或sum%11+'0'(一个数字加一个字符)
cout<<"Right"<<endl;
else
{
if(sum%11==10)
str[13]='X';
else
str[13]=sum%11+'0'; //隐式转换
//str[13]=char(sum%11+'0'); //显式转换
//不能这样写str[13]='sum%11';
printf("%s\n",str+1);
}
return 0;
}
better codes:
#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char ch[15],ans;
int num,cnt;
int main()
{
scanf("%s",ch+1);
for(int i=1;i<=11;i++)
if(ch[i]!='-')
{
cnt++;
num+=(ch[i]-'0')*cnt;
num%=11;
}
if(num<10)ans=num+'0';
else ans='X';
if(ans==ch[13])puts("Right");
else
{
ch[13]=ans;
printf("%s",ch+1);
}
return 0;
}
fff