1048 -----デジタル暗号化PAT B(20分)

デジタル暗号化1048(20分)

この問題は、デジタル暗号化の方法を達成するために必要。最初は、固定された正整数Aで暗号化し、対応する位置の各々上の任意の正の整数B、および番号の操作下記Aにデジタル1ビット:奇数のビットの後、デジタル和モジュロ13の対応するビット - - 10 J、Q 11、K 12表すの代表の代表ここで使用される;結果が否定的である場合でもビットで、数Bマイナスの数で、次に10を追加します。最初のものを作るために少しをここに。

入力フォーマット:

一つの行に順次入力AおよびBに与えられ、せいぜい100は、隙間によって分離された正の整数、ではありません。

出力フォーマット:

出力は、一列に暗号化されます。

サンプル入力:

1234567 368782971
 

出力例:

3695Q8118

要注意的地方:
输入以最大位数为主
例如:12345 1 看作是12345 00001
123 12345看作是 00123 12345
首次通过代码:
1の#include <stdio.hの>
 2の#include < ストリング・H>
 3  
4  int型のmain(){
 5      チャー鍵[ 101 ]。
6      チャー USER_INPUT [ 101 ]。
7      チャー final_input [ 101 ]。
8      のscanf(" %S%S " 、キー、USER_INPUT)。
9      INT key_lenに= STRLEN(キー) - 1 10      INT user_input_len = STRLEN(USER_INPUT) - 1 11      int型の最大値。
12      もし(key_lenに> user_input_len)MAX = key_lenに。
13      他に最大= user_input_len。
14      のintフラグ= 1int型 FLAG1 = 1 ;
15      final_input [MAX + 1 ] = ' \ 0 ' 16      一方、1 ){
 17          であれば(user_input_len < 0 ){
 18              場合(FLAG1){
 19                 のためにINTは iは= 0 ; I <= key_lenに、I ++ ){
 20                 USER_INPUTを[I] = '0 " ;
21              }
 22              FLAG1 = 0 23              user_input_len = key_lenに。
24は             続けます25              }
 26              ブレーク27          }
 28          そう であれば(key_lenに< 0 ){
 29              のためにINT I = user_input_len; I> = 0 ; i-- ){
 30                  final_input [最大- ] = USER_INPUT [I]。
31              }
 32              ブレーク33         }
 34          であれば(フラグ){
 35              フラグ= 0 36              INT X =(キー[key_lenに] + USER_INPUT [user_input_len] - ' 0 ' - ' 0 ')%13 37              であれば(x> = 0 && X <= 9)final_input [最大- ] = X + ' 0 ' 38              {
 39                  スイッチ(X){
 40                      ケース 10:final_input [最大- ] = ' J '休憩;
41                     ケース 11:final_input [最大- ] = ' Q ' ; 休憩;
42                      ケース 12:final_input [最大- ] = ' K '休憩;
43                  }
 44              }
 45              
46          }
 47          {
 48             フラグ= 1 49             INT X = USER_INPUT [user_input_len] - キー[key_lenに]。
50             であれば(X < 0)、X + = 10 51             final_input [最大- ] = X +' 0 ' ;
52             
53          }
 54          user_input_len-- 55          key_len-- ;
56      }
 57  
58       のprintf(" %sの" 、final_input)。
59       リターン 0 ;
60      
61 }
コードの表示

 

 

おすすめ

転載: www.cnblogs.com/a982961222/p/12366302.html