Advertisement
Grugaloragran

Untitled

Sep 30th, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.74 KB | None | 0 0
  1. #include <stdio.h>
  2. void bits(unsigned int x)
  3. {
  4.     unsigned int len = sizeof(unsigned int) * 8;
  5.     unsigned int i;
  6.     unsigned int bit;
  7.     for (i = 0; i<len; i++)
  8.     {
  9.         bit = x >> (len-i-1) & 1;
  10.         printf("%d", bit);
  11.     }
  12.     printf("\n");
  13. }
  14. unsigned int prob(unsigned int k)
  15. {
  16.     unsigned int bitprev, bitcurr, bitnext,o,res;
  17. unsigned int len = sizeof(unsigned int) * 8;
  18. unsigned int i;
  19. res = k;
  20. o = 1;
  21. for (i = 0; i<len-2; i++)
  22. {
  23.     bitprev = k >> (i) & 1;
  24.     bitcurr = k >> (i+1) & 1;
  25.     bitnext = k >> (i+2) & 1;
  26.     o *= 2;
  27.     if (bitprev == bitcurr && bitcurr == 0 && bitcurr==bitnext) res += o;
  28. }
  29. return (res);
  30. }
  31. int main(void)
  32. {
  33.     unsigned int l, h;
  34.     scanf("%ud", &l);
  35.         bits(l);
  36.         h = prob(l);
  37.         printf("%d\n", h);
  38.         bits(h);
  39.     return 0;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement