zoukankan      html  css  js  c++  java
  • PAT 1048. 数字加密

    PAT 1048. 数字加密

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

    输入格式:

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

    输出格式:

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

    输入样例:

    1234567 368782971
    

    输出样例:

    3695Q8118
    

    代码如下

    #include<iostream>
    using namespace std;
    int main(){
    	string a,b;
    	cin>>a>>b;
    	char map[]={'J','Q','K'};
    	if(b.size()>a.size()) 
    	a.insert(a.begin(),b.size()-a.size(),'0'); // 如过b比a长,用0补位
    	else
    	b.insert(b.begin(),a.size()-b.size(),'0'); // 同理
    	int temp;
    	for(int i=0;i<b.size();i++){
               /* cnt表示b[i] 的位数为cnt,举个例子,比如12345,i=0时b[i]=1,且1在的位数为b.siez()-i=5-0=5*/
    		int cnt=b.size()-i; 
    		if(cnt%2!=0){   
    			temp=(a[i]-'0'+b[i]-'0')%13;
    			if(temp>=10)
    			cout<<map[temp-10];
    			else cout<<temp;
    		}
    		else{
    			if(b[i]-a[i]<0) cout<<b[i]-a[i]+10;
    			else cout<<b[i]-a[i];
    		
    	}
    	return 0;
    }
    
  • 相关阅读:
    ASP.NET 页面访问控制
    数据库设计——范式
    C#接口
    员工签到签退
    sharepoint content type publishing
    安卓自动化测试环境搭建
    SharePoint 2016 Document Center Send To Connection
    ADO.NET DBHelper 类库
    SQL语句总结
    移动端屏幕适配问题
  • 原文地址:https://www.cnblogs.com/A-Little-Nut/p/8124500.html
Copyright © 2011-2022 走看看