1048. 数字加密(20)
2018-03-01 13:10
274 查看
本题要求实现一种数字加密方法。首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对13取余——这里用J代表10、Q代表11、K代表12;对偶数位,用B的数字减去A的数字,若结果为负数,则再加10。这里令个位为第1位。输入格式:输入在一行中依次给出A和B,均为不超过100位的正整数,其间以空格分隔。输出格式:在一行中输出加密后的结果。输入样例:
1234567 368782971输出样例:
3695Q8118
#include<iostream> #include<string> #include<vector> using namespace std; int main() { string s1,s2; cin>>s1>>s2; if(s2.length()>s1.length()) { for(int i=s2.length()-s1.length();i>=1;i--) { s1.insert(0,"0"); } } if(s2.length()<s1.length()) { for(int i=s1.length()-s2.length();i>=1;i--) { s2.insert(0,"0"); } } int index=1; for(int i=s2.length()-1,j=s1.length()-1;i>=0&&j>=0;i--,j--) { if(index%2==1) { int t=(s2[i]-'0'+s1[j]-'0')%13; if(t==10) { s2[i]='J'; } else if(t==11) { s2[i]='Q'; } else if(t==12) { s2[i]='K'; } else { s2[i]=t+'0'; } } else { int t=s2[i]-s1[j]; if(t<0) t=t+10; s2[i]=t+'0'; } index++; } cout<<s2; }
相关文章推荐
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 1048. 数字加密(20)(C++)
- [PAT乙级]1048. 数字加密(20)
- 1048. 数字加密(20)
- PAT乙级1048. 数字加密(20)
- 1048. 数字加密(20)
- PAT:B1048. 数字加密(16/20)
- 1048. 数字加密(20)
- PAT 乙级 1048. 数字加密(20)
- PAT乙级—1048. 数字加密(20)-native
- 1048. 数字加密(20)
- 1048. 数字加密(20)PAT乙级
- 1048. 数字加密(20)
- 1048. 数字加密(20)
- 1048. 数字加密(20)-浙大PAT乙级真题
- PAT-B 1048. 数字加密(20)
- 1048. 数字加密(20)
- PAT 1048. 数字加密(20)
- 1048. 数字加密(20)