0votos

Clave secreta para acceso a cajeros automáticos en C++

por Emanuel usando GCC6 hace 6 meses

Diseñé una función que retorna si la clave es correcta. Compruebo que el código sea de longitud mayor a 3, luego extraigo los dígitos correspondientes al centenar y millar, y verifico que cumpla la 2da condición.

Un banco establece que la clave secreta para acceso a sus cajeros automáticos debe ser un número de cuatro o más dígitos y que la suma de los dos dígitos que se encuentran en la 3 y 4 posición (posición de centena y millar) sea par. Determinar si una clave cumple con la condición.

1
2
3
4
5
6
7
8
9
10
11
#include <string> 
 
bool code_is_valid( unsigned const&code ) { 
    string _code = std::to_string( code ); 
    if( _code.size() <= 3 ) return false; 
    size_t a_pos = _code.size() - 4; 
    size_t b_pos = _code.size() - 3; 
    int    a = stoi( _code.substr( a_pos, 1 ) ), 
                b = stoi( _code.substr( b_pos, 1 ) ); 
    return (a+b)%2==0; 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.