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
► 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;
}