洛谷 P1055 ISBN號碼

2021-08-18 07:31:06 字數 1321 閱讀 4372

每一本正式出版的圖書都有乙個isbn號碼與之對應,isbn碼包括9位數字、1位識別碼和3位分隔符,其規定格式如「x-***-***xx-x」,其中符號「-」就是分隔符(鍵盤上的減號),最後一位是識別碼,例如0-670-82162-4就是乙個標準的isbn碼。isbn碼的首位數字表示書籍的出版語言,例如0代表英語;第乙個分隔符「-」之後的三位數字代表出版社,例如670代表維京出版社;第二個分隔符後的五位數字代表該書在該出版社的編號;最後一位為識別碼。

識別碼的計算方法如下:

首位數字乘以1加上次位數字乘以2……以此類推,用所得的結果mod 11,所得的餘數即為識別碼,如果餘數為10,則識別碼為大寫字母x。例如isbn號碼0-670-82162-4中的識別碼4是這樣得到的:對067082162這9個數字,從左至右,分別乘以1,2,...,9,再求和,即0×1+6×2+……+2×9=158,然後取158 mod 11的結果4作為識別碼。

你的任務是編寫程式判斷輸入的isbn號碼中識別碼是否正確,如果正確,則僅輸出「right」;如果錯誤,則輸出你認為是正確的isbn號碼。

輸入格式:

輸入檔案isbn.in只有一行,是乙個字串行,表示一本書的isbn號碼(保證輸入符合isbn號碼的格式要求)。

輸出格式:

輸出檔案isbn.out共一行,假如輸入的isbn號碼的識別碼正確,那麼輸出「right」,否則,按照規定的格式,輸出正確的isbn號碼(包括分隔符「-」)。

輸入樣例#1:複製

0-670-82162-4
輸出樣例#1:複製

right
輸入樣例#2:複製

0-670-82162-0
輸出樣例#2:複製

0-670-82162-4
2008普及組第一題

基本字串操作

注意識別碼為10的情況

#include using namespace std;

int main()

} sbm %= 11;

char csbm;

if(sbm == 10)

csbm='x';

else

csbm=char(sbm+'0');

if(csbm == a[12])

else

cout<} return 0;

}

洛谷P1055 ISBN號碼

每一本正式出版的圖書都有乙個isbn號碼與之對應,isbn碼包括99位數字 11位識別碼和33位分隔符,其規定格式如x xx x,其中符號 就是分隔符 鍵盤上的減號 最後一位是識別碼,例如0 670 82162 4就是乙個標準的isbn碼。isbn碼的首位數字表示書籍的出版語言,例如00代表英語 第...

洛谷 P1055 ISBN號碼

題目描述 每一本正式出版的圖書都有乙個isbn號碼與之對應,isbn碼包括99位數字 11位識別碼和33位分隔符,其規定格式如x xx x,其中符號 就是分隔符 鍵盤上的減號 最後一位是識別碼,例如0 670 82162 4就是乙個標準的isbn碼。isbn碼的首位數字表示書籍的出版語言,例如00代...

洛谷P1055ISBN號碼題解 zhengjun

題目描述 每一本正式出版的圖書都有乙個isb nisbn isbn 號碼與之對應,isb nisbn isbn 碼包括9 99位數字 1 11位識別碼和3 33位分隔符,其規定格式如x xx x,其中符號 就是分隔符 鍵盤上的減號 最後一位是識別碼,例如0 670 82162 4就是乙個標準的isb...