fbpx

Problema #2206 – minimpar – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dă un număr X. Să se afle cel mai mic număr Y ≥ X cu proprietatea că Y are doar cifre impare.

Date de intrare

Programul citește de la tastatură numărul X.

Date de ieșire

Programul va afișa pe ecran numărul Y.

Restricții și precizări

  • 1 ≤ X ≤ 10^18

Exemplu

Intrare

22

Ieșire

31
#include <bits/stdc++.h>
using namespace std;
int main()
{
    unsigned long long n , ogl = 0 ;
    int a[20] , b[20] , p = 0 , ok = 0;
    cin >> n;
    while(n != 0)
    {
        a[p] = n % 10;
        n /= 10;
        p++;
    }
    int j = 0;
    for(int i = p-1 ; i >= 0 ; --i)
    {
        b[j] = a[i];
        j++;
    }
    for(int i = 0 ; i < p ; ++i)
    {
        int k = 0;
        if(b[i] % 2 == 0 && ok == 0)
        {
            cout << b[i] + 1;
            ok = 1;
            k = 1;
        }
        if(b[i] % 2 == 1 && ok == 0) cout << b[i];
        if(ok == 1 && k == 0) cout << 1;
    }
}
Comentarii

S-ar putea sa iti placa