PATB1048:数字加密
来源:互联网 发布:做淘宝目前什么好做啊 编辑:程序博客网 时间:2024/06/08 19:21
PATB1048:数字加密
【思路】: 输入 循环 判断,只需要对每个元进行一次操作即可
【知识点】
杂类用hash表示
char has_z[3] = { 'J', 'Q', 'K' };
【知识点】
对于c的字符数组可以用reverse来进行字符数组的反转,本题由于是字符到bit的操作,所以字符反转是常规思路
reverse(a, a + strlen(a));reverse(b, b + strlen(b));
【知识点】
一个分支,只有一个操作而不是附加操作的话 需要用 if else 而非if(附加操作)
if (num <=12 && num >=10) { ans[k++] = has_z[num - 10]; //一定是 if else } else { ans[k++] = '0' + num; }
【知识点】
对于没法不全的补充,字符补充,分支判断
if (i <strlen(a)) { bit1 = a[i] - '0'; } else{ bit1 = 0; }
【参考代码】
//数字加密void B1048(){ char has_z[3] = { 'J', 'Q', 'K' }; char a[110] , b[110]; cin >> a >> b; reverse(a, a + strlen(a)); reverse(b, b + strlen(b)); int size = max(strlen(a), strlen(b)); char ans[110] = {'\0'}; int k = 0; for (int i = 0; i < size; i++) { int bit1; int bit2 ; if (i <strlen(a)) { bit1 = a[i] - '0'; } else{ bit1 = 0; } if (i <strlen(b)) { bit2 = b[i] - '0'; } else{ bit2 = 0; } //得到数字 if (i % 2 == 0)//奇数 { int num = (bit1 + bit2) % 13; if (num <=12 && num >=10) { ans[k++] = has_z[num - 10]; //一定是 if else } else { ans[k++] = '0' + num; } } else{ int num2 = bit2 - bit1; if (num2 < 0) { num2 += 10; } ans[k++] = '0' + num2; } } reverse(ans, ans + strlen(ans)); puts(ans);}
0 0
- PATB1048:数字加密
- 数字加密
- 数字加密
- 数字加密
- 数字签名与数字加密
- 数字签名和数字加密
- 数字加密和认证
- B1048. 数字加密(20)
- PAT 1048. 数字加密
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 1048. 数字加密
- 1048. 数字加密(20)
- PAT1048数字加密(20)
- 1048. 数字加密
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 原生JS完成假分页
- PATB1031:查验身份证
- Spring MVC学习笔记(一)
- spring使用xml配置mysql,mongodb,redis,activemq
- int和unsigned int的细节问题(重要细节)
- PATB1048:数字加密
- PATB1014:福尔摩斯的约会
- strlen和str.length()的区别 .
- Fragment与Activity通讯
- 循环语句
- GUi组件篇1
- JSP动作元素
- PATB1024:科学记数法
- ubuntu下jdk安装