#include
int main(){
int a, b, c, i;
char d;
int b1, c1, d1;
scanf("%d-%d-%d-%c", &a, &b, &c, &d);
if(d>=48 && d<= 57) d1 = d - 48;
else d1 = d - 78;//将X转化为数字,以表示10
int sum = 0;
b1 = b;
sum += a;
for(i=2; i<=4; i++){
sum += (b / 100) * i;
b -= (b / 100) * 100;
b *= 10;
}
c1 = c;
for(i=5; i<=9; i++){
sum += (c / 10000) * i;
c -= (c / 10000) * 10000;
c *= 10;
}
if(sum%11 == d1) {
printf("Right");
}else{
if(sum%11 == 10) printf("%d-%d-%d-X", a, b1, c1);
else printf("%d-%d-%d-%d", a, b1, c1, sum%11);
}
return 0;
}
1.利用ASCII将X转为数字。
2.记录各项与i乘积之和。
代码冗杂,还有更好的方法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)