码迷,mamicode.com
首页 > 其他好文 > 详细

PAT Basic 1048

时间:2018-08-11 23:49:42      阅读:293      评论:0      收藏:0      [点我收藏+]

标签:names   out   方法   math   ++   数字   include   格式   ios   

1048 数字加密

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

输入格式:

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

输出格式:

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

输入样例:

1234567 368782971

输出样例:

3695Q8118

  题解:按照题意,直接写就好O(∩_∩)O~
代码如下:
 1 #include<iostream>
 2 #include<string>
 3 #include<cmath>
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     string a, b, c;
 9     cin>>a>>b;
10     int l = 1;
11     while( a.length() > b.length()){
12         b = 0+ b;
13     }
14     while( a.length() < b.length() ){
15         a = 0 + a;
16     }
17     for(int i = a.length() - 1; i >= 0; i--,l++){
18         if(l%2==1){
19             int temp = (a[i] - 0 + b[i] - 0) % 13;
20             if( temp < 10 ){
21                 char d = temp + 0;
22                 c = d + c;
23             } 
24             else if( temp == 10 )
25                 c = J + c;
26             else if( temp == 11 )
27                 c = Q + c;
28             else if( temp == 12 )
29                 c = K + c;
30         }
31         else{
32             int temp = b[i] - a[i];
33             if(temp < 0) temp += 10;
34             char d =  temp + 0;
35             c = d + c;
36         }
37     } 
38     cout<<c;
39     return 0;
40  } 

 


PAT Basic 1048

标签:names   out   方法   math   ++   数字   include   格式   ios   

原文地址:https://www.cnblogs.com/yxp400/p/9461604.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!