前書き
この課題では、ISBN-13コードが存在する場合、ISBN-13コードを指定して書籍のISBN-10コードを生成することがタスクです。このようなISBN-13コードは、以下で区切られたいくつかの部分で構成されてい-
ます。
978-GG-PPPP-TTT-C
文字G
(グループ)、P
(発行者)、T
(タイトル)、およびC
(チェックサム)はすべて1桁を表します。このチャレンジの目的では、グループ化と計算C
(このチャレンジを参照)はおもしろくありません。このタスクを簡単にするために、すべてのハイフンを削除します。
ISBN-10番号のレイアウトは非常に似ています。
GG-PPPP-TTT-c
文字G
、P
およびT
は、13桁のISBNと同じc
ですが、異なります(異なるアルゴリズムを使用して計算されます)。数字c
は、次の等価性が保持されるように選択されます(数字が順番に並んでいます)。
10*G + 9*G + 8*P + … + 3*T + 2*T + 1*c = 0 (mod 11)
例
ISBN番号について考えてみましょう。9780345391803
対応するISBN-10コードを取得するには、先頭978
のチェックサムとチェックサムが3
降っているだけ034539180
です。
次に、新しいチェックサムを計算する必要があります。
10*0 + 9*3 + 8*4 + 7*5 + 6*3 + 5*9 + 4*1 + 3*8 + 2*0 = 185
で割り切れる次の番号11
はです187
。そのため、新しいチェックサムは2
ISBN-10コードになります0345391802
。
ルール
- 入力には常に対応するISBN-10番号が付けられます(つまり、正確に13桁で始まり、で始まります
978
) - 入力は、必ずしも有効なISBN-13である必要はありません(例:。
9780000000002
) - 結果のISBNが次で終わらないことが保証されます
X
- 入力は整数または文字列(ハイフンの有無にかかわらず)として取得できますが、事前に計算された数字のリストは許可されていません
- 出力は有効なISBN-10番号である必要があります(ハイフンの有無にかかわらず)
- 出力は整数または文字列である可能性があります(ここでも数字のリストはありません)
テストケース
9780000000002 -> 0000000000
9780201882957 -> 0201882957
9781420951301 -> 1420951300
9780452284234 -> 0452284236
9781292101767 -> 1292101768
9780345391803 -> 0345391802
先行ゼロに注意してください!
0-684-84328-5
及び99921-58-10-7
、最初の部分が(0
および99921
それぞれ)は、第2の部分は、パブリッシャである、というように、登録基です。