PAT 1048 数字加密

PAT 1048 数字加密

题目描述

思路讲解

分析:首先将a和b倒置,将字符串a和b中较短的那个末尾添加0直到两个字符串长度相等,然后从0开始依次处理每一位,如果当前位是奇数位(i % 2 == 0)则将a[i]的数字加上b[i]的数字再对13取余,结果添加在字符串c的末尾;如果是偶数位,计算b[i]和a[i]的差值,如果小于0就加10,然后将结果添加在字符串c的末尾,最后倒序输出字符串c~

代码展示

cpp 复制代码
#include <iostream>
#include <algorithm>

using namespace std;

int main() {
    string a, b, c;
    cin >> a >> b;

    int lena = a.length(), lenb = b.length();

    reverse(a.begin(), a.end());
    reverse(b.begin(), b.end());

    if (lena > lenb)
        b.append(lena - lenb, '0');
    else
        a.append(lenb - lena, '0');

    char str[14] = {"0123456789JQK"};

    for (int i = 0; i < a.length(); i++) {
        if (i % 2 == 0) {
            c += str[(a[i] - '0' + b[i] - '0') % 13];
        }
        else {
            int temp = b[i] - a[i];
            if (temp < 0) temp = temp + 10;
            c += str[temp];
        }
    }
    for (int i = c.length() - 1; i >= 0; i--)
        cout << c[i];

    return 0;
}
相关推荐
WWZZ20251 小时前
快速上手大模型:深度学习11(数据增强、微调、目标检测)
人工智能·深度学习·算法·目标检测·计算机视觉·大模型·具身智能
fashion 道格1 小时前
深入理解队列的艺术
数据结构·算法
大白IT1 小时前
第四部分:决策规划篇——汽车的“大脑”(第8章:行为决策——车辆的“驾驶策略师”)
人工智能·算法·机器学习
minji...1 小时前
C++ AVL树(二叉平衡搜索树)的概念讲解与模拟实现
数据结构·c++·b树·算法·avl
CNRio2 小时前
ZUC国密算法深度研究:原理、实现与应用(Python、Rust)
python·算法·rust
REDcker2 小时前
C++ std::shared_ptr 线程安全性和最佳实践详解
java·jvm·c++
星期天22 小时前
【无标题】
数据结构·c++·算法
老李四2 小时前
Java 内存分配与回收策略
java·jvm·算法
做怪小疯子2 小时前
LeetCode 热题 100——普通数组——除自身以外数组的乘积
数据结构·算法·leetcode
明洞日记3 小时前
【数据结构手册001】从零构建程序世界的基石
数据结构·c++