Digital PAT cifrado B -1048 (20 minutos)

Haga clic en el enlace completo Resumen solución PAT B -AC

Título:
El título requerido para lograr un método de cifrado digital. En primer lugar, cifrada con un número entero positivo A fija, para cualquier entero positivo B, y los números en cada una de las posiciones correspondientes a 1 bits digital a una operación siguiente: Después de un bit impar, el bit correspondiente del módulo de suma digital 13 - - 10 usada aquí representante de J, representante de Q 11, K 12 representa; en poco incluso, con el número B menos el número de una, si el resultado es negativo, entonces añadir 10. Aquí un poco para que la primera.

Formato de entrada:
secuencia de entrada se da en la fila A y B, no más de 100 son enteros positivos, separadas por un espacio entre ellos.

Formato de salida:
el resultado de la salida cifrada en una fila.

de entrada de la muestra:

1234567 368782971

Resultado de muestra:

3695Q8118

Mi código:

#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;
}

Tenga en cuenta que b es menor que una longitud de tiempo, también debería tener que pasar todos los números a, b que se llena con ceros delante de cálculo, de lo contrario habrá dos casos de error

Publicado 82 artículos originales · ganado elogios 1 · vistas 1688

Supongo que te gusta

Origin blog.csdn.net/qq_34451909/article/details/104816673
Recomendado
Clasificación