Advertisement
Asinka

03. FitTree (6 Dec 2011 Morning)

Dec 26th, 2012
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.25 KB | None | 0 0
  1. using System;
  2.  
  3.  
  4.  
  5. class FitTree
  6. {
  7.     static void Main()
  8.     {
  9.         int digits = int.Parse(Console.ReadLine());
  10.         int numberP = 0;
  11.         int count = 0;
  12.  
  13.         for (int k = 0; k < digits; k++)
  14.         {
  15.  
  16.             int invertedP = 0;
  17.             int reversedP = 0;
  18.             numberP = int.Parse(Console.ReadLine());
  19.             for (count = 0; count < 32; count++)
  20.             {
  21.                 int mask = 1 << count;
  22.                 if (mask > numberP || count == 31)
  23.                 {
  24.                     count--;
  25.                     break;
  26.                 }
  27.             }
  28.  
  29.             for (int i = 0, j = count; i <= count; i++, j--)
  30.             {
  31.                 int mask = 1 << i;
  32.                 int bit = numberP & mask;
  33.  
  34.                 int invertedMask = 1 << j;
  35.  
  36.                 if (bit == 0)
  37.                 {
  38.                     invertedP = invertedP | mask;
  39.                     reversedP = reversedP & ~invertedMask;
  40.                 }
  41.                 else
  42.                 {
  43.                     invertedP = invertedP & ~mask;
  44.                     reversedP = reversedP | invertedMask;
  45.                 }
  46.             }
  47.             Console.WriteLine((numberP ^ invertedP) & reversedP);
  48.         }
  49.      
  50.     }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement