洛谷 P1055 ISBN號碼 字串 模擬

2021-09-08 13:24:20 字數 1251 閱讀 7912

每一本正式出版的圖書都有乙個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普及組第一題

分析:直接模擬吧,每一位數字對應的ascii值減去'0',分別乘上1~9,然後mod11就好咯,然後簡單判斷一下即可!

下面給出ac**:

1 #include 2

using

namespace

std;

3char s[13];4

intmain()519

}20else

2130}31

return0;

32 }

洛谷 P1055 ISBN號碼

每一本正式出版的圖書都有乙個isbn號碼與之對應,isbn碼包括9位數字 1位識別碼和3位分隔符,其規定格式如 x xx x 其中符號 就是分隔符 鍵盤上的減號 最後一位是識別碼,例如0 670 82162 4就是乙個標準的isbn碼。isbn碼的首位數字表示書籍的出版語言,例如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代...