洛谷P1055ISBN號碼題解 zhengjun

2021-10-05 03:09:40 字數 2219 閱讀 5177

題目描述

每一本正式出版的圖書都有乙個isb

nisbn

isbn

號碼與之對應,isb

nisbn

isbn

碼包括9

99位數字、1

11位識別碼和3

33位分隔符,其規定格式如x-***-***xx-x,其中符號-就是分隔符(鍵盤上的減號),最後一位是識別碼,例如0-670-82162-4就是乙個標準的isb

nisbn

isbn

碼。i sb

nisbn

isbn

碼的首位數字表示書籍的出版語言,例如0

00代表英語;第乙個分隔符-之後的三位數字代表出版社,例如670

67067

0代表維京出版社;第二個分隔符後的五位數字代表該書在該出版社的編號;最後一位為識別碼。

識別碼的計算方法如下:

首位數字乘以1

11加上次位數字乘以2

22……以此類推,用所得的結果 mod

11\bmod 11

mod1

1,所得的餘數即為識別碼,如果餘數為10

1010

,則識別碼為大寫字母x

xx。例如isb

nisbn

isbn

號碼0

−670

−82162−4

0-670-82162-4

0−670−

8216

2−4中的識別碼4

44是這樣得到的:對067082162

067082162

067082

162這9

99個數字,從左至右,分別乘以1,2

,...

,9

1,2,...,9

1,2,..

.,9再求和,即0×1

+6×2

+……+

2×9=

1580×1+6×2+……+2×9=158

0×1+6×

2+……

+2×9

=158

,然後取158mo

d11

158 \bmod 11

158mod

11的結果4

44作為識別碼。

你的任務是編寫程式判斷輸入的isb

nisbn

isbn

號碼中識別碼是否正確,如果正確,則僅輸出right;如果錯誤,則輸出你認為是正確的isb

nisbn

isbn

號碼。輸入格式

乙個字串行,表示一本書的isb

nisbn

isbn

號碼(保證輸入符合isb

nisbn

isbn

號碼的格式要求)。

輸出格式

一行,假如輸入的isb

nisbn

isbn

號碼的識別碼正確,那麼輸出right,否則,按照規定的格式,輸出正確的isb

nisbn

isbn

號碼(包括分隔符-)。

輸入輸出樣例

輸入 #1 複製

0

-670

-82162

-4

輸出 #1 複製
right
輸入 #2 複製
0

-670

-82162

-0

輸出 #2 複製
0

-670

-82162

-4

說明/提示

2008

2008

2008

普及組第一題

一道特別水的模擬題。

就是-有點不好。

我的方法就是開乙個陣列,記錄9

99個數字的位置(全域性直接賦值),然後就算出和,然後直接修改輸出。

#include

using

namespace std;

int a[10]

=;//精髓

string s;

intmain()

return0;

}

洛谷 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代...