PTA:B1048 数字加密。c++

PTA:B1048 数字加密.字符串处理
摘要由CSDN通过智能技术生成

B1048 数字加密

本题要求实现一种数字加密方法。首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10、Q 代表 11、K 代表 12;对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再加 10。这里令个位为第 1 位。
输入格式:
输入在一行中依次给出 A 和 B,均为不超过 100 位的正整数,其间以空格分隔。
输出格式:
在一行中输出加密后的结果。

sample input:
1234567 368782971

sample output:
3695Q8118

思路:

  1. 为了方便按位处理,对于两个整数A\B,采用字符串的方式读入
  2. 由于读入的时候最高位在数组的0号位,且题目要求从最低位开始处理且最低位为第一位,所以需要在读入后再把数组重新按照低位在数组低位的方式进行反转,并且从第一位开始
  3. 最终需要处理和输出的字符长度是两个数字中位数最长的那一个
  4. 需要注意的是,由于从1号位开始,所以判断一个数是否处理完毕的条件是>count。
  5. 最后输出的时候也要进行反转输出,先输出数字的高位。
#include <iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
   
 char a[111],b[111];
 cin>>a>>b;
 int lentha=strlen(a);
 int lenthb
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值