• PAT (Basic Level) Practice (中文)1048 数字加密 (20 分)


    本题要求实现一种数字加密方法。首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10、Q 代表 11、K 代表 12;对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再加 10。这里令个位为第 1 位。

    输入格式:

    输入在一行中依次给出 A 和 B,均为不超过 100 位的正整数,其间以空格分隔。

    输出格式:

    在一行中输出加密后的结果。

    输入样例:

    1234567 368782971
    

    输出样例:

    3695Q8118
     1 #include <iostream>
     2 #include <string>
     3 #include <cstring>
     4 #include <cstdio>
     5 #include <algorithm>
     6 #include <set>
     7 #include <queue>
     8 using namespace std;
     9 int a[105];
    10 int b[105];
    11 char c[105];
    12 string str1,str2; 
    13 int main()
    14 {
    15     while(cin>>str1>>str2){
    16         memset(a,0,sizeof(a));
    17         memset(b,0,sizeof(b));
    18         int len1=str1.length();
    19         int len2=str2.length();
    20         int len=max(len1,len2);
    21         for(int i=len1-1;i>=0;i--){
    22             a[i]=str1[len1-i-1]-'0';
    23         }
    24         for(int i=len2-1;i>=0;i--){
    25             b[i]=str2[len2-i-1]-'0';
    26         }
    27         for(int i=0;i<len;i++){
    28             if(i%2==0){
    29                 if((a[i]+b[i])%13<10){
    30                     c[i]=((a[i]+b[i])%13)+'0';
    31                 }else if((a[i]+b[i])%13==10){
    32                     c[i]='J';
    33                 }else if((a[i]+b[i])%13==11){
    34                     c[i]='Q';
    35                 }else if((a[i]+b[i])%13==12){
    36                     c[i]='K';
    37                 }
    38             }else{
    39                 c[i]=(b[i]-a[i]+10)%10+'0';
    40             } 
    41         } 
    42         for(int i=len-1;i>=0;i--){
    43             cout<<c[i];
    44         }
    45         cout<<endl;
    46     }
    47     return 0;
    48 }
  • 相关阅读:
    最舒适的路线(并查集)
    POJ 2411 状态压缩DP
    NYOJ 708 ones
    HUD 1024 Max Sum Plus Plus
    最长上升子序列
    HDU 4717 The Moving Points
    重新开始写随笔
    读书的意义
    读《如何阅读一本书》笔记
    读《GRAY HAT PYTHON》笔记
  • 原文地址:https://www.cnblogs.com/shixinzei/p/11194164.html
Copyright © 2020-2023  润新知