296
Cerința
Pentru un număr natural dat n
, numim ParImpar următoarea operație:
- dacă
n
este par, rezultatul este numărul scris cu cifrele pare ale luin
– de exemplu, pentru410722
rezultatul este4022
; - dacă
n
este impar, rezultatul este numărul scris cu cifrele impare ale luin
– de exemplu, pentru357103
rezultatul este35713
.
Se citesc două numere naturale. Să se afișeze numărul pentru care rezultatul operației ParImpar este mai mare.
Date de intrare
Programul citește de la tastatură două numere naturale.
Date de ieșire
Programul va afișa pe ecran valoarea cerută.
Restricții și precizări
- cele două numere citite vor fi mai mici decât
1.000.000.000
- dacă pentru cele două numere se obține același rezultat pentru operația ParImpar se va afișa numărul mai mare.
Exemplu
Intrare
410722 357103
Ieșire
357103
#include <bits/stdc++.h> using namespace std; int main() { int a,b,ax=0,p1=1,p2=1,bx=0; cin>>a>>b; int n=a,m=b; if(a%2==0) { while(a!=0) { if(a%10%2==0) { ax=ax+a%10*p1; p1=p1*10; } a /= 10; } } if(a%2==1) { while(a!=0) { if(a%10%2==1) { ax=ax+a%10*p1; p1=p1*10; } a /= 10; } } if(b%2==0) { while(b!=0) { if(b%10%2==0) { bx=bx+b%10*p2; p2=p2*10; } b /= 10; } } if(b%2==1) { while(b!=0) { if(b%10%2==1) { bx=bx+b%10*p2; p2=p2*10; } b /= 10; } } if(ax==bx) { if(n>m) cout<<n; else cout<<m; } else if(ax>bx) cout<<n; else cout<<m; return 0; }
Comentarii