Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- int cif(long a, int b);
- int PalMinim(long n);
- int Nrcifre(long n);
- int main()
- {
- int n;
- cin >> n;
- cout << PalMinim(n);
- }
- int cif(long a, int b)
- {
- int cnt = 0;
- if(!a && !b) cnt = 1;
- while(a)
- {
- if(a % 10 == b) cnt++;
- a/=10;
- }
- return cnt;
- }
- int PalMinim(long n)
- {
- int m = 0, nrap, i, c;
- if(Nrcifre(n) % 2 == 0)
- {
- for(c = 9; c >= 0; c--)
- {
- nrap = cif(n,c);
- if(nrap % 2 != 0)
- return 0;
- else
- for(i = 1; i<=nrap/2; i++)
- m = m * 10 + c;
- }
- }
- else
- {
- int ok = - 1;
- for(c = 9; c >= 0, ok <= 0; c--)
- {
- nrap = cif(n,c);
- if(nrap % 2 == 1)
- {ok++;
- if(nrap == 1) m = m * 10 + c;
- else
- {
- for(i = 1; i<=nrap/2; i++)
- m = m * 10 + c;
- }
- }
- else
- {
- for(i = 1; i<=nrap/2; i++)
- m = m * 10 + c;
- }
- return 0;
- }
- }
- n = m;
- while(m)
- {
- n = n * 10 + m % 10;
- m /= 10;
- }
- return n;
- }
- int Nrcifre(long n)
- {
- int nr = 0;
- if(n == 0) nr = 1;
- while(n)
- {
- n++;
- n/=10;
- }
- return nr;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement