#include #include #include int bit(int a); int main(void) { int N; int s = 1; int c = 1; int b; int ng = 0; int n0g[10] = {0}; scanf("%d", &N); n0g[0] = 1; if (N == 1) { printf("%d\n", s); return EXIT_SUCCESS; } for (;;) { b = bit(c); s++; if (!(s % 10)) { ng = c; } if (c+b == N) { printf("%d\n", s); break; } else if (c+b > N) { c -= b; } else { c += b; } if (c == ng) { printf("%d\n", -1); return EXIT_SUCCESS; } } return EXIT_SUCCESS; } int bit(int a) { int t = 0; int p; for (int i = 15; i >= 0; i--) { p = pow(2, i); if (a >= p) { t++; a -= p; } } return t; }