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

Cum pot insera o cifra inaintea altei cifre intr-un program c/c++??
ex:n=1234 afiseaza 12534


ArMyFoRHeLL: in exemplu tau ,eu as salva prima parte a nr(12) folosing x=n/100 si (34) x1=n%100 si as forma numarul n=x*1000+5*500+x1
ArMyFoRHeLL: n=x*1000+5*100+x1
iancelena: As vrea pe caz general
iancelena: Adica pentru problema:Se citeste un nr nat n.Sa se insereze inaintea fiecarei cifre divizibile cu 3 treimea acesteia!
ArMyFoRHeLL: ok
Rayzen: Program pentru problema: Se citeste un nr nat n.Sa se insereze inaintea fiecarei cifre divizibile cu 3 treimea acesteia.
Rayzen: #include <iostream>

using namespace std;

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

cin>>n;

while (n!=0)
{
if( (n%10) % 3 == 0)
{
V[k] = n%10;
V[k+1] = (n%10)/3;
k=k+2;
}
else
{
V[k] = n%10;
k++;
}
n=n/10;
}

for(int i=k-1;i>=1;i--)
{
cout<<V[i];
}

}

Răspunsuri la întrebare

Răspuns de miordache28
0
// Example program
#include <iostream>
#include <string>
using namespace std;
int main(){ 
int n, x, fin=0, nr=1; 
cin>>n; 
int aux = n; 
while (aux>=10) 
{     
 nr=nr*10; //aflam cate cifre are pentru a parcurge numarul de la inceput la sfarsit     aux/=10;  
}     
cout<<nr<<endl; 
aux = n; 
while(nr!=0) 
{     
  x= (aux/nr)%10;           
  if(x % 3 == 0)       
{           
fin = fin * 10 + x/3;           
fin = fin * 10 + x;       
 }   
else   
fin = fin * 10 + x;    nr/=10;  } 
 cout << fin<<endl;
}

miordache28: Of doamne nu stiam ca apare asa
miordache28: http://cpp.sh/4tmp
miordache28: mai sus ai linkul cu problema rezolvata
iancelena: ok
Răspuns de ArMyFoRHeLL
3
#include <iostream>
using namespace std;


int main()
{
    int n,P=1,x=0;
    cin>>n;
    while(true)
    {

        x=n%10*P+x;//adaugam cifre 1234 x=4 ; x=3*10+4
        P=P*10;
        if(n%3==0)
        {
            x=(n%10/3)*P+x;
            P=P*10;
        }

        n/=10;

        if(n<9)
        {
           cout<<n<<x;
            return 0;
        }
    }

}



Alte întrebări interesante