Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/02/2015, 00:35
braedu555
 
Fecha de Ingreso: febrero-2015
Mensajes: 20
Antigüedad: 9 años, 9 meses
Puntos: 0
Pregunta Desencriptar un numero en c

Estoy haciendo un ejercicio que pide que introduzca un numero de 4 dígitos, y que encripte el entero reemplazando cada dígito con el residuo de la división entre 10 de la suma de dicho dígito mas 7, y que luego reemplace el primer dígito con el tercero, y el segundo con el cuarto para desplegar el nuevo valor:
Código:
#include <stdio.h>

int main ()
{
	int numero;
	int n1, n2, n3, n4;
	
	printf("Introduzca el dato de 4 digitos: ");
	scanf("%d", &numero);
	
	n4 = numero % 10;
	numero /=10;
	n3 = numero % 10;  //separando digitos
	numero /=10;
	n2 = numero % 10;
	n1 = numero / 10;
	
	n1 += 7;
	n2 += 7;
	n3 += 7;      //sumandoles 7
	n4 += 7;
	
	n1 %= 10;
	n2 %= 10;
	n3 %= 10;   //sacando residuo
	n4 %= 10;
	
	printf("%d%d%d%d\n", n3, n4, n1, n2);  //devolviendo dato encriptado
	
	system ("pause");
	return 0;
	
	
}
La duda que tengo es que ahora no se como desencriptarlo, por ejemplo si en el primer programa pongo 1234, me devuelve 0189, y este mismo numero me tiene que devolver 1234 en el otro programa, pero no lo he conseguido:

Código:
#include <stdio.h>

int main ()
{
	int numero;
	int n1, n2, n3, n4;
	
	printf("Introduzca numero encriptado: ");
	scanf("%d", &numero);
	
	n4 = numero % 10;
	numero /= 10;
	n3 = numero % 10;
	numero /= 10;          //separando digitos
	n2 = numero % 10;
	n1 = numero / 10;
	
	n4 -= 7;
	n3 -= 7;
	n2 -= 7;         
	n1 -= 7;
	
	
    n4 %= 10;
	n3 %= 10;
	n2 %= 10;
	n1 %= 10;
	

	printf("%d%d%d%d\n", n3, n4, n1, n2);
	
	system ("pause");
	return 0;
}
Quisiera que me dieran una pista, o me corrijan si ando mal en algo, porque ya he intentado de varias formas y no me da. Gracias!