跳至正文

ISBN号码 解题报告

  • OI路程

这题很简单,一位一位算就是,唯一要注意的就是mod 11 = 10的时候,要用X。代码:

C语言:

#include <stdio.h>
#include <ctype.h>
char isbn[14];

char getint(void)
{
 static int i = 0;
 int t;
 do{
 t = isbn[i++];
 }while(!isdigit(t));
 return t - \'0\';
}

int main(void)
{
 int a = 0;
 int i;
 char t;
 scanf(%s, isbn);
 for(i = 1; i <= 9; i++){
 t = getint();
 a += t * i;
 }
 t = isbn[12];
 a %= 11;
 if(a == 10){
 a = \'X\';
 }else{
 a += \'0\';
 }
 if(t == a){
 printf(Right\\n);
 }else{
 isbn[12] = a;
 printf(%s\\n, isbn);
 }
 return 0;
}

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注