You are on page 1of 3

Un banco ha solicitado se disee un programa que permita encriptar la informacin de las contraseas (4 nmeros ) digitada por teclado (como

un nico numero) hasta el servidor principal, utilizando el siguiente criterio, el primer nmero se enva de ultimo, el segundo, de penltimo, el tercer numero pasa a la segunda posicin, el ltimo pasa a ser primero: ejemplo Ejemplo: Sea 7458, se debe enviar como 8547 #include "conio.h" #include "math.h" Ejemplo: Sea 7458, se debe enviar como 8547 #include #include int a,b,c,d; int main { printf("\ningrese el primer numero de su contrasea"); scanf("%d",&a); printf("\ningrese el segundo numero de su contrasea"); scanf("%d",&b); printf("\ningrese el tercero numero de su contrasea"); scanf("%d",&c); printf("\ningrese el cuarto numero de su contrasea"); scanf("%d",&d); printf("\nencriptando contrasea"); printf("\nsu contrasea es:\t",d,c,b,a); syatem("pause"); return 0; }

2. Escribir un programa para calcular la fecha del siguiente da a partir de una fecha digitada desde el teclado por el usuario ( dd, mm, aaaa ) e imprimirla. (tenga en cuenta los aos bisiestos.) #include using namespace std; int main() { int d, m, a, dm, t, i; cout << "Ingrese fecha (dd mm aa): "; // aos de dos digitos cin >> d >> m >> a; t = 365 * a + ( a - 1 ) / 4; /* dias hasta el ano anterior desde 1900 (ej. 1903, incluye el ao 1900, 1901, 1902: 3 anos ). y un dia por cada ano bisiesto,

hasta el ano anterior for( i = 1; i 0 && a % 4 == 0 ) dm = 29; else dm = 28; } 3. Se lee un nmero de mximo tres dgitos (verifique que efectivamente sea de mximo tres dgitos) y se debe determinar si es un nmero capica, es decir, que ledo de izquierda a derecha es igual que ledo de derecha a izquierda. Por ejemplo: 727, 343, etc. #include "iostream.h" // Retorna la cantidad de digitos que tiene un numero int numeroDigitos(int numero) { int i=1; while(numero/10!=0) { numero=numero/10; i++; } return i; } /* Si "pos" es una poscion invalida, retorna -1, sino Retorna el digito de la posicion "pos" de un numero */ int obtenerDigito(int numero, int pos) { int numDigitos, i, digito; // Obtenemos el numero de digitos de un numero numDigitos=numeroDigitos(numero); // Verificamos si "pos" es una posicion invalida if(pos<=0 pos>numDigitos) digito=-1; else { i=1; // i llegara hasta el numero de divisiones efectivas para obtener el digito while(i<=numDigitos-pos) { numero=numero/10; i++; } digito=numero%10; } return digito; } // Determina si un numero es capicua bool esCapicua(int numero) { bool esCapicua=true; int numDigitos, medio, i, numero1, numero2; // Obtenemos el numero de digitos de un numero numDigitos=numeroDigitos(numero); medio=numDigitos/2; i=1; /* el indice y se detendra hasta llegue a "medio" o hasta que ya se halla determinado que esCapicua es false */ while(i<=medio&&esCapicua)

{ /* numero1 y numero2 seran detrminados tomando los extremos del subnumero segun el indice i */ numero1=obtenerDigito(numero,i); numero2=obtenerDigito(numero,numDigitos-i+1); // Comparamos si los dos numeros son diferentes if(numero1!=numero2) esCapicua=false; i++; } return esCapicua; } int main() { int numero; cout<<"Ingrese numero: "<>numero; if(esCapicua(numero)) cout<<"SI es Capicua"; else cout<<"NO es Capicua"; cout<system("PAUSE"); return 0;

You might also like