PAT Basic 1048

Posted yxp400

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT Basic 1048相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

PAT1048:Find Coins

PAT Basic 1078

PAT甲级1048 Find Coins (25 分)(二分)

PAT 1048 Find Coins (25)

PAT 1048. Find Coins

PAT 甲级 1048 Find Coins