• B1048 数字加密


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

    输入格式:

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

    输出格式:

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

    输入样例:

    1234567 368782971

    输出样例:

    3695Q8118

    思路:

    • 输入两个字符串a b,将a b进行reverse,互换后每位数的奇偶互换;

    • 在a[i] b[i]都非零,即i < a.length() && i < b.length(),将变换结果加到c上;如果b的长度大于a的长度需要将超出的一部分直接加到字符串c上;如果b的长度小于a的长度,若为偶数位,直接加到c上,若为奇数位,取反加10,加到c上。最后输出字符串c

    问题:

    测试5 答案错误

    解决:

    还没找到解决办法⊙︿⊙

     

     1 #include <iostream>
     2 #include <string>
     3 #include <algorithm>
     4 using namespace std;
     5 int main() {
     6     string a, b, c;
     7     char mp[14] = { "0123456789JQK" };
     8     cin >> a >> b;
     9     reverse(a.begin(), a.end());
    10     reverse(b.begin(), b.end());
    11     int i = 0;
    12     while (i < a.length() && i < b.length()) {
    13         if (i % 2 == 0) {
    14             c+= mp[((a[i]-'0') + (b[i]-'0')) % 13];
    15         }
    16         else {
    17             if (b[i] - a[i] < 0)c+= to_string((b[i]-'0') - (a[i]-'0') + 10);
    18             else c+=mp[b[i] - a[i]];
    19         }
    20         i++;
    21     }
    22     if (b.length() > a.length()) {
    23         while (i < b.length()) {
    24             c += b[i];
    25             i++;
    26         }
    27     }
    28     else if(b.length() < a.length()){
    29         while (i < a.length()) {
    30             if(i%2==0)c += a[i];
    31             else c += to_string(10 - (a[i] - '0'));
    32             i++;
    33         }
    34     }
    35     for (int j = c.length()-1; j>=0; j--) {
    36         cout << c[j];
    37     }
    38     return 0;
    39 }
    作者:PennyXia
             
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    android studio :cannot resolve symbol R
    @Configuration
    URI、URL 和 URN
    第十二章 映射请求到Servlet(JavaTM Servlet 规范3.1 )
    第二章 Servlet 接口(JavaTM Servlet 规范3.1 )
    第十章 Web Application(JavaTM Servlet 规范3.1 )
    第六章 过滤(JavaTM Servlet 规范3.1 )
    第四章 Servlet上下文(JavaTM Servlet 规范3.1 )
    第三章 Request(JavaTM Servlet 规范3.1 )
    第五章 Response(JavaTM Servlet 规范3.1 )
  • 原文地址:https://www.cnblogs.com/PennyXia/p/12296153.html
Copyright © 2020-2023  润新知