Guest User

Untitled

a guest
Jul 20th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. int main()
  5. {
  6. int N;
  7. while( scanf( "%d", &N ) != EOF )
  8. {
  9. int x;
  10. for( x = 1 ; x <= N ; x++ )
  11. {
  12. int n;
  13. scanf( "%d", &n );
  14.  
  15. if( n == 0 )
  16. {
  17. printf( "Case #%d: 0\n", x );
  18. continue;
  19. }
  20.  
  21. int b[50] = {0}, bnum = 0;
  22. int ntemp = abs( n );
  23. while( ntemp )
  24. {
  25. b[bnum++] = ntemp % 2;
  26. ntemp /= 2;
  27. }
  28.  
  29. int negorpos = ( n > 0 )? 0 : 1;
  30. int carry = 0;
  31. int i;
  32. for( i = 0 ; i < bnum ; i++ )
  33. {
  34. int temp = carry;
  35. carry = ( b[i] + temp ) / 2;
  36. b[i] = ( b[i] + temp ) % 2;
  37. if( i % 2 != negorpos && b[i] )
  38. carry++;
  39. }
  40. if( carry )
  41. {
  42. if( i % 2 != negorpos )
  43. {
  44. b[bnum++] = 1;
  45. b[bnum++] = 1;
  46. }
  47. else
  48. b[bnum++] = 1;
  49. }
  50.  
  51. printf( "Case #%d: ", x );
  52. for( i = bnum-1 ; i >= 0 ; i-- )
  53. printf( "%d", b[i] );
  54. printf( "\n" );
  55. }
  56. }
  57. return 0;
  58. }
Add Comment
Please, Sign In to add comment