Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Semana 4 - Ejercicio 15
- Dado un número entero con un número par de dígitos, escribir un programa que muestre el número con cada par de dígitos intercambiado.
- Por ejemplo: si n=654321 se debe mostrar 563412.
- */
- #include<iostream>
- #include<cmath>
- using namespace std;
- int main()
- {
- float n;
- // Validadmos que el numero sea entero, positivo y de 6 digitos ( 1 <= n/1000 <10)
- do{
- cout<<"Ingrese un numero entero, postivo de seis digitos: ";
- cin>>n;
- }
- while(int(n)!=n or n/100000<1 or n/100000>=10);
- // Una vez tenemos validado 'n' , podemos trabajar con su parte entera
- int num = int(n);
- cout<<num<<endl;
- cout<<"----------------"<<endl;
- int aux;
- for(int i=2 ; i>=0 ; i--){
- //cout<<int(num/pow(100,i))<<endl; // Aqui dividimos en cada vuelta por 100^n (10.000, 100, 1 ....), Asi separamos el numero en 2, 4 y 6 digitos.
- switch(i){
- case 2: // Si 'i=2', num/10.000 , el numero tiene 2 digitos
- aux = int((num/pow(100,i)));
- // Intercambiamos posiciones de los numeros (Ver ejercicio 14)
- while(aux>=10){
- cout<<aux%10;
- aux /= 10;
- }
- cout<<aux%10;
- break;
- case 1: // Si 'i=1', num/100 , el numero tiene 4 digitos
- aux = (int(num/pow(100,i)))%100; // Para tener los 2 ultimos digito aplicamos '%100"
- while(aux>=10){
- cout<<aux%10;
- aux /= 10;
- }
- cout<<aux%10;
- break;
- case 0: // Si 'i=0', num/1 , el numero tiene 6 digitos
- aux = (int(num/pow(100,i)))%100; // Para tener los 2 ultimos digitos, hacemos '%100'
- while(aux>=10){
- cout<<aux%10;
- aux /= 10;
- }
- cout<<aux%10;
- break;
- }
- }
- }
- /*
- Obs: Cuando tenemos un numero de 'n' digitos, 'n / m' saca a 'n' tantos digitos como '0' tenga 'm' (De derecha a izquierda). y
- 'n % m' imprime de 'n' tantos digitos como '0' tenga 'm' (De derecha a izquierda).
- */
Add Comment
Please, Sign In to add comment