1048 数字加密 (20 分)

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

输入格式:

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

输出格式:

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

输入样例:

1234567 368782971

输出样例:

3695Q8118

思路:

把两个字符串反转之后再加密,加密后再将结果字符串反转。加的情况下,如果其中一个字符串遍历完了,相当于一个数字与0相加再赋值到结果字符串上。

CODE:

#include<iostream>
#include<cstring>
using namespace std; char A[], B[], ans[];
void reverse(char a[]){
char temp;
int len = strlen(a);
for(int i = ;i < len / ;i++){
temp = a[i];
a[i] = a[len - - i];
a[len - - i] = temp;
}
} int main(){
cin>>A>>B;
reverse(A);
reverse(B);
int len = strlen(A) > strlen(B) ? strlen(A) : strlen(B);
for(int i = ;i < len;i++){
int numA = i < strlen(A) ? A[i] - '' : ;
int numB = i < strlen(B) ? B[i] - '' : ;
if(i % == ){
int t = (numA + numB) % ;
if(t == ) ans[i] = 'J';
else if(t == ) ans[i] = 'Q';
else if(t == ) ans[i] = 'K';
else ans[i] = t + '';
}else{
int t = numB - numA;
if(t < ) t += ;
ans[i] = t + '';
}
}
reverse(ans);
cout<<ans;
return ;
}

最新文章

  1. HTML5的postMessage使用记要////////////////////////////zzzzzzzz
  2. SAP ALV内嵌(In-place)Excel的问与答
  3. NSXMLParser解析本地.xml数据(由于like7xiaoben写的太好了,我从她那里粘贴过来的)
  4. mysql 设置编码 Incorrect string value: &#39;\xE9\x98\xBF\xE4\xB8\x89...&#39; for column &#39;cont,mysql乱码
  5. javascript中json解密
  6. Centos Apache安装eAccelerator
  7. iOS8 LaunchScreen.storyboard
  8. php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证及缺点
  9. 算法录 之 BFS和DFS
  10. php 7.3 新特性
  11. Vue非父子组件之间的传值
  12. WEB 服务器 加速缓存比较
  13. CMOS集成门电路
  14. open-falcon之graph
  15. 【运维技术】Maven + Gogs + Nexus 实现版本管理 + 代码模块开发管理
  16. struts 类型转换
  17. Manachar算法详解
  18. vrrp_script不起作用解决方案
  19. 关于Windows Service的一个编写技巧
  20. 用Head方法获得百度搜索结果的真实地址

热门文章

  1. 关于equal和toString方法的实验报告
  2. cocos2D-x demo 的源码分析 #define ..##.. 的妙用.
  3. Service和IntentService的区别
  4. vs2017不是完全支持c99
  5. 3.Hive中查看数据来源文件和具体位置方法
  6. Shiro——认证概述
  7. 问渠那得清如许?为有源头活水来。——java面向对象的思想
  8. 将DataTable进行分页并生成新的DataTable
  9. WCF分布式开发步步为赢(1):WCF分布式框架基础概念
  10. angular 中间人模式