1 条题解

  • 0
    @ 2024-5-18 13:43:46
    #include <bits/stdc++.h>
    using namespace std;
    int sum,isbn[10];
    int main(int argc, char **argv){
    	char c;int idx = 1,n;
    	while (cin >> c){
            n = c - '0';
    		if (idx == 10){
    			break;
    		}
    		if (c == '-'){
    			continue;
    		}
    		isbn[idx] = n;
    		sum += idx * n;
    		idx++;
    	}
    	cin >> c;	// 可能输入 X, 所以用 c
    	n = c - '0';
    	if (c == 'X' && sum % 11 == 10){	// 特判正确
    		cout << "Right";
    	}else if (sum % 11 == n){	// 正常正确
    		cout << "Right";
    	}else{	// 错误
    		cout << isbn[1] << '-';
    		for (int i = 2;i <= 4;i++){
    			cout << isbn[i];
    		}
    		cout << '-';
    		for (int i = 5;i <= 9;i++){
    			cout << isbn[i];
    		}
    		cout << '-' << sum % 11;	// 别忘了输出的是新的识别码
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    242
    时间
    1000ms
    内存
    16MiB
    难度
    6
    标签
    递交数
    18
    已通过
    11
    上传者