PAT乙级(Basic Level)1048(C++)
来源:互联网 发布:c 游戏编程入门教程 编辑:程序博客网 时间:2024/05/16 14:39
1048. 数字加密(20)
本题要求实现一种数字加密方法。首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对13取余——这里用J代表10、Q代表11、K代表12;对偶数位,用B的数字减去A的数字,若结果为负数,则再加10。这里令个位为第1位。
输入格式:
输入在一行中依次给出A和B,均为不超过100位的正整数,其间以空格分隔。
输出格式:
在一行中输出加密后的结果。
输入样例:1234567 368782971
输出样例:3695Q8118
<pre name="code" class="cpp">#include<iostream>#include<string>#include<cmath>using namespace std;int main(){ string A, B, C; cin >> A >> B; int z = A.size() - B.size(); string zeros(abs(z), '0'); if (A.size() > B.size())//a比b长 { B = zeros + B; } if (B.size() > A.size())//b比a长 { A = zeros + A; } for (int i = B.size() - 1,j=1; i >= 0; --i,++j) { int b = B[i] - '0', a = A[i] - '0',c; char ch; if (j % 2 == 1) { c = (a + b) % 13; switch (c) { case 10: ch = 'J'; break; case 11: ch = 'Q'; break; case 12: ch = 'K'; break; default: ch = '0' + c; break; } } else { c = b - a; if (c < 0) { c += 10; } ch = '0' + c; } C = ch + C; } cout << C << endl; system("pause"); return 0;}
0 0
- PAT乙级(Basic Level)1048(C++)
- PAT乙级(Basic Level)1041(C++)
- PAT乙级(Basic Level)1047(C++)
- PAT乙级(Basic Level)1027(C++)
- PAT乙级(Basic Level)1029(C++)
- PAT乙级(Basic Level)1008(C++)
- PAT乙级(Basic Level)1002(C++)
- PAT乙级(Basic Level)1032(C++)
- PAT乙级(Basic Level)1038(C++)
- PAT乙级(Basic Level)1011(C++)
- PAT乙级(Basic Level)1012(C++)
- PAT乙级(Basic Level)1049(C++)
- PAT乙级(Basic Level)1023(Java/C++)
- PAT乙级(Basic Level)1026(C++)
- PAT乙级(Basic Level)1031(C++)
- PAT乙级(Basic Level)1004(C++/Java)
- PAT乙级(Basic Level)1018(C++)
- PAT乙级(Basic Level)1039(C++)
- 位运算、switch、循环结构
- 求面积
- 编码规则
- css3-color
- 55. spring boot 服务配置和部署【从零开始学Spring Boot】
- PAT乙级(Basic Level)1048(C++)
- 全角与半角的英文
- java基础学习总结——监听当数据发生变化时要做的操作
- 松果体——人体第三只眼研究
- c++音频播放,wav格式的
- Java 接口
- 友盟推送获取简单的deviceToken
- android5.0 物理键盘与软键盘同时使用修改
- mysql中varchar(10)中定义的长度到底是字符长度还是字节长度