디지털 암호화 PAT의 -1048 B (20 분)

링크를 클릭 전체 솔루션 요약 PAT B - AC

제목 :
제목은 디지털 암호화 방법을 달성하는 데 필요한. 첫째, 고정 된 양의 정수 A의 암호화에 대응하는 각각의 위치에 임의의 양의 정수 B 및 숫자 동작의 뒤에 오는 디지털 1 비트 : 홀수 비트 후에, 디지털 합산 모듈 (13)의 대응 비트 - - (10)은 여기서 사용되는 Q 11 대표 대표 J, K 12 나타낸다 결과가 부정적이면 짝수 비트에서 숫자 B 마이너스의 번호와, 그 후에 열을 추가한다. 첫 번째를 만들기 위해 조금 여기.

입력 형식 :
입력 시퀀스 사이에 공간에 의해 분리 된 양의 정수이다 않음 100 개 이상, 로우 A 및 B에 주어진다.

출력 형식 :
연속 암호화 된 출력 결과.

샘플 입력 :

1234567 368782971

샘플 출력 :

3695Q8118

내 코드 :

#include<iostream>
#include<cstdio>
#include<vector>
#include<string>
#include<set>
#include<map>
#include<algorithm>
#include<cmath>
#include<ctime>
#include<cstring>
#include<sstream>
using namespace std;
//有的时候题目是一起做的,所以会有不需要的头文件

int main()
{
    string aa,bb;
    cin>>aa>>bb;
    if(bb.length()<aa.length())bb.insert(0,aa.length()-bb.length(),'0');
    int len_a=aa.length();
    int len_b=bb.length();
    for(int i=1;i<=len_a&&i<=len_b;i++)
    {//从1开始方便计算奇数偶数
        if(i%2)//奇数
        {
            int mod=(aa[len_a-i]-'0'+bb[len_b-i]-'0')%13;
            if(mod==10)bb[len_b-i]='J';
            else if(mod==11)bb[len_b-i]='Q';
            else if(mod==12)bb[len_b-i]='K';
            else bb[len_b-i]='0'+mod;
        }
        else//偶数
        {
            int mod=bb[len_b-i]-aa[len_a-i];
            if(mod<0)mod+=10;
            bb[len_b-i]='0'+mod;
        }
    }
    cout<<bb;
    return 0;
}

참고 b는 시간의 길이보다 작다는 것을, 우리는 또한 모든 번호를 재 계산 앞에 0으로 채워되는 A, B를 지출해야한다, 그렇지 않으면이 오류 경우가있을 것입니다

게시 82 개 원래 기사 · 원 찬양 한 · 전망 1688

추천

출처blog.csdn.net/qq_34451909/article/details/104816673