291
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