Abelsor

Semana 4 - Ejercicio 15

Feb 24th, 2022 (edited)
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.91 KB | None | 0 0
  1. /*
  2.                         Semana 4 - Ejercicio 15
  3.     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.
  4.     Por ejemplo: si n=654321 se debe mostrar 563412.
  5. */
  6. #include<iostream>
  7. #include<cmath>
  8.  
  9. using namespace std;
  10.  
  11. int main()
  12. {
  13.     float n;
  14.    
  15.     // Validadmos que el numero sea entero, positivo y de 6 digitos ( 1 <= n/1000 <10)
  16.     do{
  17.         cout<<"Ingrese un numero entero, postivo de seis digitos: ";
  18.         cin>>n;
  19.     }
  20.     while(int(n)!=n or n/100000<1 or n/100000>=10);
  21.    
  22.     // Una vez tenemos validado 'n' , podemos trabajar con su parte entera
  23.    
  24.     int num = int(n);
  25.    
  26.     cout<<num<<endl;
  27.    
  28.     cout<<"----------------"<<endl;
  29.    
  30.     int aux;
  31.    
  32.     for(int i=2 ; i>=0 ; i--){
  33.         //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.
  34.        
  35.         switch(i){
  36.             case 2: // Si 'i=2', num/10.000 , el numero tiene 2 digitos
  37.                 aux = int((num/pow(100,i)));
  38.                 // Intercambiamos posiciones de los numeros (Ver ejercicio 14)
  39.                 while(aux>=10){
  40.                     cout<<aux%10;
  41.                     aux /= 10;
  42.                 }
  43.                 cout<<aux%10;
  44.                 break;
  45.            
  46.             case 1: // Si 'i=1', num/100 , el numero tiene 4 digitos
  47.                 aux = (int(num/pow(100,i)))%100; // Para tener los 2 ultimos digito aplicamos '%100"
  48.                 while(aux>=10){
  49.                     cout<<aux%10;
  50.                     aux /= 10;
  51.                 }
  52.                 cout<<aux%10;
  53.                 break;
  54.            
  55.             case 0: // Si 'i=0', num/1 , el numero tiene 6 digitos
  56.                 aux = (int(num/pow(100,i)))%100; // Para tener los 2 ultimos digitos, hacemos '%100'
  57.                 while(aux>=10){
  58.                     cout<<aux%10;
  59.                     aux /= 10;
  60.                 }
  61.                 cout<<aux%10;
  62.                 break;     
  63.         }          
  64.                
  65.     }
  66. }
  67.     /*
  68.             Obs: Cuando tenemos un numero de 'n' digitos, 'n / m' saca a 'n' tantos digitos como '0' tenga 'm' (De derecha a izquierda). y
  69.                                        
  70.                                                           'n % m' imprime de 'n' tantos digitos como '0' tenga 'm' (De derecha a izquierda).
  71.     */
  72.  
  73.  
Add Comment
Please, Sign In to add comment