本题要求实现一种数字加密方法。首先固定一个加密用正整数 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 }

转载于:https://www.cnblogs.com/shixinzei/p/11194164.html

PAT (Basic Level) Practice (中文)1048 数字加密 (20 分)相关推荐

  1. PAT (Advanced Level) Practice 1011 World Cup Betting (20 分) 凌宸1642

    PAT (Advanced Level) Practice 1011 World Cup Betting (20 分) 凌宸1642 题目描述: With the 2010 FIFA World Cu ...

  2. C++学习之路 | PTA乙级—— 1048 数字加密 (20 分)(精简)

    1048 数字加密 (20 分) 本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 ...

  3. 测试点分析:1048 数字加密 (20分)_16行代码AC

    立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位 ...

  4. 1048 数字加密 (20分)

    本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余--这里用 J 代表 ...

  5. 1048 数字加密 (20 分) javascript

    本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余--这里用 J 代表 ...

  6. PTA平台 · PAT(Basic Level) Practice(中文) 题目集

    前  言 ※  PTA是 程序设计类实验辅助教学平台 ,里边包含一些编程题目集以供练习. ※  PAT是 浙江大学计算机程序设计能力考试(Programming Ability Test),分为乙级( ...

  7. 【PAT乙级】1048 数字加密 (20 分)

    题目地址 #include<cstdio> #include<iostream> #include<string> #include<algorithm> ...

  8. 【PAT (Basic Level) 】1024 科学计数法 (20 分)

    科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部 ...

  9. 【PAT (Basic Level) 】1014 福尔摩斯的约会 (20 分)

    大侦探福尔摩斯接到一张奇怪的字条: 我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm 大侦探很快就明白了,字条上 ...

最新文章

  1. wingide的使用方法积累
  2. python函数对变量的作用域_python函数变量作用域如何理解使用?
  3. 备受期待的Python深度学习来了
  4. Hbase2修复 - HBCK2
  5. linux联想电脑wifi密码,联想笔记本Y7000—ubuntu16.4无法开启wifi的解决办法
  6. Mysql中Drop删除用户的名字_mysql5.5 使用drop删除用户
  7. java输入做参数需要close吗_JAX-RS和java.time.LocalDate作为输入参数
  8. 我可以在同一个catch子句中捕获多个Java异常吗?
  9. ​突破数据存储瓶颈,Aibee实现场景化AI的有效落地
  10. 东方通tongweb的安装及使用(图文详细版)
  11. ARM体系结构与编程笔记
  12. 将MP4视频和MP4音频合并成MP4文件
  13. 软件系统分析设计过程方法精要
  14. 科研小白如何有效下载英文文献和英文书籍?
  15. P2882 [USACO07MAR]Face The Right Way G 【贪心 + 差分】
  16. Ubuntu界面美化
  17. word页码不连续怎么办
  18. 【office相关】excel 中使用 switch函数
  19. html图片标签img的介绍以及基本用法详解
  20. c语言fgetc函数作用,C语言fputc()和fgetc()函数

热门文章

  1. 机器学习技法1-Linear Support Vector Machine
  2. PHP——模糊匹配文件|目录
  3. 将python文件打包成exe可运行文件
  4. 执行RF测试只生成output.xml文件,不生成log和report文件
  5. 从输入 URL 到页面加载完的过程中都发生了什么事情 —— 网络优化篇
  6. mysql 主键 uniqo_项目总结,彻底掌握NodeJS中如何使用Sequelize
  7. ecshop数据表结构说明
  8. Spring中Map的key为对象引用的注入
  9. Docker cgroups作用(十)
  10. OpenStack Neutron浅析(四)