Informatică, întrebare adresată de iancelena, 9 ani în urmă

Se citeste un nr n.Inserati dupa fiecare clipa para o cifra egala cu jumatate din ea.
in c++ Va rog este urgent

Răspunsuri la întrebare

Răspuns de Rayzen
4
#include <iostream>
using namespace std;

//Avem de exemplu numarul 78946.

int main()
{
int n,V[50],k=1;
cin>>n;

for(int i=1;i<=k;i++)
 {   
        V[i] = n%10;    
        n = n/10;                               //vectorul va fi: 64987
        if(n!=0)  {k++;}                           //cu pozitiile: 12345  
 } 

for(int j=k;j>=1;j--)       //extragem vectorul de la cap la coada, k este nr, termenilor.
 {                                 //din vectorul 64987 vom extrage: 78946   
                                                                       //cu pozitiile: 54321
    if(k%2!=0)         //daca, k, impar 
         {                                          
              if(j%2 == 0)    // vom alege pozitiile pare.
                      {  
                          cout<<" "<<(V[j])/2;     
                      }   
         }   
     else            //daca k este par, de exemplu, am avea 7896 
                                                                      //cu pozitiile 4321
         {       
              if(j%2!=0)            // vom alege pozitiile impare.
                      {
                          cout<<" "<<(V[j])/2;   
                      }
       }
 }

}


Alta varianta, prin care "intoarcem" vectorul, ca sa nu ne mai chinuim cu pozitiile pare si impare:


#include <iostream>using namespace std;

//Avem de exemplu vectorul 78946.

int main(){int n,V[50],A[50],k=1;
cin>>n;

for(int i=1;i<=k;i++)   
   {   
    V[i] = n%10;   
       n = n/10;                //Vom avea vectorul V = {6,4,9,8,7}   
      if(n!=0)  {k++;} 
   }

int j=0;
for(int i = k;i>=1;i--)
 {                                   //k reprezinta numarul elementelor din V, aici k = 5.
    j++;                            //Extragem din vectorul V = {6,4,9,8,7}
                                                             //cu pozitiile:  1 2  3 4 5   
   A[j] = V[i];                     //A[1] = V[5};,, A[2] = V[4],,,A[3] = V[3], .... ,A[5] = V[1}               cout<<A[j];                                    //Vom avea vectoril A = {7,8,9,4,6}
                                                      //cu pozitiile: 1 2 3 4 5    
 }
cout<<endl;

for(int i = 1;i<=j;i++)         //j reprezinta numarul termenilor lui A, in cazul nostru 5  
 {                                   
    if(i%2 == 0)                        
      {       
         cout<<" "<<(A[i])/2;   
      }
}
}
Alte întrebări interesante