Informatică, întrebare adresată de Andreigabriel8870, 8 ani în urmă

Se da un numar de 6 cifre nenule. Construiti alte 2 numere: unul cu cifrele pare, altul cu cele impare. A) cifrele apar in ordinea din numar Ex: n=123456 Se formeaza 135 si 246
b) cifrele apar in ordine inversa Ex: n=123456 Se formeaza 531 si 642.

Răspunsuri la întrebare

Răspuns de andrei750238
0

► CIFRELE APAR IN ORDINE INVERSA

#include <iostream>

using namespace std;

int main() {

int n;

int par = 0, impar = 0;

cin >> n;

//Cat timp avem cifre in numar

while (n != 0) {

 //Determina ultima cifra

 int cifra = n % 10;

 //Daca e para adauga la sfarsitul lui par

 if (cifra % 2 == 0)

  par = par * 10 + cifra;

 //Daca e imapara adauga la sfarsitul lui impar

 else

  impar = impar * 10 + cifra;

 //Sterge ultima cifra a numarului

 n = n / 10;

}

//Afiseaza rezultat

cout << par << " " << impar;

}

► CIFRELE APAR IN ORDINEA BUNA

Folosim algoritmul de mai sus, dar in plus calculam rasturnatul lui par si impar.

#include <iostream>

using namespace std;

int main() {

int n;

int par = 0, impar = 0;

cin >> n;

//Cat timp avem cifre in numar

while (n != 0) {

 //Determina ultima cifra

 int cifra = n % 10;

 //Daca e para adauga la sfarsitul lui par

 if (cifra % 2 == 0)

  par = par * 10 + cifra;

 //Daca e imapara adauga la sfarsitul lui impar

 else

  impar = impar * 10 + cifra;

 //Sterge ultima cifra a numarului

 n = n / 10;

}

//Determinam rasturnatele

int rst_par=0, rst_impar=0;

while (par != 0) {

 rst_par = rst_par * 10 + par % 10;

 par = par / 10;

}

par = rst_par;

while (impar != 0) {

 rst_impar = rst_impar * 10 + impar % 10;

 impar = impar / 10;

}

impar = rst_impar;

//Afiseaza rezultat

cout << par << " " << impar;

}

Alte întrebări interesante