wingsoul @ 2023-07-13 10:01:40
P1055 [NOIP2008 普及组] ISBN 号码
#include<iostream>
#include<string.h>
using namespace std;
char a[20];
int b;
int main()
{
scanf("%s",&a);
b = (a[0]-48)*1+(a[2]-48)*2+(a[3]-48)*3+(a[4]-48)*4+(a[6]-48)*5+(a[7]-48)*6+(a[8]-48)*7+(a[9]-48)*8+(a[10]-48)*9;
b %= 11;
if(a[12]-48 == b) cout<<"Right"<<endl;
else
{
if(b==10)
a[12] = 'X';
else a[12] = b+48;
printf("%s",a);
}
return 0;
}
by maopaom @ 2023-07-14 11:40:48
要先特判b也就是识别码为10的情况,因为b=10的时候char是X,这样判断是不相等的,但是按照题目意思其实这个情况也是Right,代码中是漏了这个逻辑
by wingsoul @ 2023-07-14 15:08:14
@maopaom 通过了,谢谢谢谢!!!