SDNU 1120.ISBN番号

説明

本書の各公式出版物は、対応するISBN番号、9桁の番号、識別コードや、「X-XXX-XXXXX-Xなどの所定のフォーマットであるセパレータ3であって、ISBNコードを有している 」、 記号" - 「、最後のものは、識別コード区切り文字(キーボード上のマイナス記号)である、例えば、ISBN 0-670-82162-4、標準コードです。分離後の第2次5桁; - 「」を押した後に3桁、バイキングプレスのような670人の代表を表し第一セパレータ、最初の数字は、5つの言語で出版された書籍のISBNコード、英語のような0を表し、この本は、出版社の数を表し、最後のものが識別コードです。
計算した識別コードは、次の
二桁目と1を乗じた第一の数は2で乗算......というように、MOD 11を得られた結果と、残りを生じたことは余りが10である場合、識別コードである識別コードがです大文字X. 例えば、識別コードのISBN 0-670-82162-4数はこうして得られる4:067082162 9の数字を、左から右へ、1、2、...、9、次いで合計、すなわち、0×乗算されます+ 6、1×2 + ... + 2×9 = 158、 158 MOD 11、次いで、識別コードとして、4の結果を取ります。
あなたの仕事はあなたが識別コードを入力しているISBN番号を決定するためのプログラムを書くことで正しい場合、出力のみ「右」、正しいか、間違っている場合は、出力が正しいISBN番号であると思います。

入力

唯一のラインは、(入力に必要な形式のISBN番号を確実にするために)ブックのISBN番号を表す文字のシーケンスです。

出力

総ライン、入力された識別番号ISBNコードが正しい場合、出力「右」、そうでない場合は、所定のフォーマットによれば、(セパレータを含む「 - 」)出力正しいISBN番号。

サンプル入力

0-670-82162-4

サンプル出力

ソース

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
#defineは長い長いっチャー C [ 18 ]、S。INT メイン()
{ 
    scanf関数(" %sの" 、C)。
    INT = II 1、標識= 0、lenは=のSTRLEN(C)、和= 0 以下のためにint型 i = 0 ; iがLEN <; iは++ 
    { 場合(符号< 9個の && C [I] =!' - ' 
        { 
            合計 + = II *((INT




        )C [i]が- 48 ); 
            II ++ ; 
            記号 ++ ; 
        } 
    } %= 11 もし(合計== 10)S = ' X ' 他の S =合計+ 48 もし(S == C [len- 1 ])のprintf(" 右の\ n " );
    
    { 
        ためint型 i = 0 ; iはlen- < 1 ; iは++ 
            のprintf("%のC "C [I]); 
        のprintf(" %Cする\ n " 、S); 
    } 
    戻り 0 ; 
}

 

おすすめ

転載: www.cnblogs.com/RootVount/p/10981318.html