wsqgh @ 2022-12-16 15:46:19
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
string s;
cin>>s;
int ans;
ans=s[0]*1+s[2]*2+s[3]*3+s[4]*4+s[6]*5+s[7]*6+s[8]*7+s[9]*8+s[10]*9;
if(ans%11==s[12])
printf("Right");
else if(ans%11<10 && ans%11!=s[12])
printf("%d-%d%d%d-%d%d%d%d%d-%d",s[0],s[2],s[3],s[4],s[6],s[7],s[8],s[9],s[10],ans%11);
else if(ans%11==10)
printf("%d-%d%d%d-%d%d%d%d%d-X",s[0],s[2],s[3],s[4],s[6],s[7],s[8],s[9],s[10]);
return 0;
}
by Night_sea_64 @ 2022-12-16 16:06:00
@wsqgh
if(ans%11==s[12])
显然等号前面的是数,后面的是字符,要比较得让字符减去 '0'。
还有 ans%11=10 的情况下也可能有 right
by wsqgh @ 2022-12-16 18:14:03
@Netherite_sword_666 怎么将字符转换成数,不是很懂,可以帮我改一下代码嘛
by Stevehim @ 2022-12-16 20:54:53
@wsqgh
if(ans%11 == s[12] - '0')
试一下。。。
by wsqgh @ 2022-12-16 22:57:22
@Stevehim 还是错的
by Stevehim @ 2022-12-17 06:46:52
@wsqgh 哦我好像知道了,把每个s[x] y 改为(s[x] - '0') y
by wsqgh @ 2022-12-18 11:19:56
@Stevehim 好的,我试一下