1048. 数字加密(20)
来源:互联网 发布:淘宝拉帮结派在哪使用 编辑:程序博客网 时间:2024/06/06 00:47
题目链接
题目:
本题要求实现一种数字加密方法。首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对13取余——这里用J代表10、Q代表11、K代表12;对偶数位,用B的数字减去A的数字,若结果为负数,则再加10。这里令个位为第1位。
输入格式:
输入在一行中依次给出A和B,均为不超过100位的正整数,其间以空格分隔。
输出格式:
在一行中输出加密后的结果。
输入样例:1234567 368782971输出样例:
3695Q8118
题解:
PAT的测试数据真滴是诡异。这么简单的题,错了两个数据点。= =不想继续浪费时间了。贴一个以前写的正确的代码
代码:
#include <cstdio>//以前的AC代码#include <cstring>const int max = 110;char a[max], b[max], ans[max] = {0};void reverse(char str[]){int len = strlen(str);for(int i = 0; i < len / 2; i++){int temp = str[i];str[i] = str[len - i - 1];str[len - 1 - i] = temp;}}int main(){scanf("%s %s", a, b);reverse(a);reverse(b);int la = strlen(a);int lb = strlen(b);int i, numa, numb;for(i = 0; i < la || i < lb; i++){numa = i < la ? a[i] - '0' : 0;numb = i < lb ? b[i] - '0' : 0;if(i % 2 == 0){int temp = (numa + numb) % 13;if(temp == 10)ans[i] = 'J';else if(temp == 11)ans[i] = 'Q';else if(temp == 12)ans[i] = 'K';elseans[i] = temp + '0';}else{int temp = (numb - numa + 10) % 10;ans[i] = temp + '0';}}reverse(ans);puts(ans);return 0;}
#include <cstdio>//有两组测试点错误的代码,至今原因不明#include <cstring>void transfer(char s[]){int len = strlen(s);for(int i = 0; i < len / 2; i++){char c = s[i];s[i] = s[len - 1 - i];s[len - 1 - i] = c;}}int main(){char s[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'J', 'Q', 'K' };char A[110], B[110];scanf("%s %s", A, B);transfer(A);transfer(B);int La = strlen(A);int Lb = strlen(B);int L = La > Lb ? Lb : La;int flag = 1;for(int i = 0; i < L; i++){if(flag == 1){B[i] = s[(B[i] - '0' + A[i] - '0') % 13];flag = 0;}else{B[i] = s[(B[i] - A[i] + 10) % 10];flag = 1;}}for (int i = Lb - 1; i >= 0; i--)printf("%c", B[i]);return 0;}
阅读全文
0 0
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 1021 石子归并-51Nod
- oracle分区表详解
- Qt 学习之路 2(60):使用 DOM 处理 XML
- 项目管理的挣值计算,一张思维导图全搞定
- 中小型研发团队架构落地实践18篇,含案例、代码
- 1048. 数字加密(20)
- Python3 迭代器与生成器
- 十一回家的精读书单(1)大型网站技术架构
- 爬虫笔记(10/2)------定向爬取
- leetcode 319. Bulb Switcher 轮流开关灯泡
- poj 1062 昂贵的聘礼 dfs
- 关于 页面多语言支持的纯前端(JQuery插件)实现及 .json 文件读取报404的问题
- Anroid 相关设置项
- 向量 内积 与 外积