svetlozar_kirkov

Bit Flipper

Sep 23rd, 2014
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.60 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace BitFlipper
  5. {
  6.     class BitFlipper
  7.     {
  8.         static void Main()
  9.         {
  10.             UInt64 n = UInt64.Parse(Console.ReadLine());
  11.             string binary = Convert.ToString((long)n, 2).PadLeft(64,'0');
  12.             char[] collected = new char[64];
  13.  
  14.             for (int i = 0; i < binary.Length;)
  15.             {
  16.                 if (i <= 61)
  17.                 {
  18.                     if (binary[i] == binary[i + 1] && binary[i + 1] == binary[i + 2])
  19.                     {
  20.                         if (binary[i] == '0')
  21.                         {
  22.                             collected[i] = '1';
  23.                             collected[i + 1] = '1';
  24.                             collected[i + 2] = '1';
  25.                             i += 3;
  26.                         }
  27.                         else if (binary[i] == '1')
  28.                         {
  29.                             collected[i] = '0';
  30.                             collected[i + 1] = '0';
  31.                             collected[i + 2] = '0';
  32.                             i += 3;
  33.                         }
  34.                     }
  35.                     else
  36.                     {
  37.                         collected[i] = binary[i];
  38.                         i++;
  39.                     }
  40.                 }
  41.                 else
  42.                 {
  43.                     collected[i] = binary[i];
  44.                     i++;
  45.                 }
  46.                
  47.             }
  48.  
  49.             string joined = string.Join("", collected);
  50.             Console.WriteLine(Convert.ToUInt64(joined, 2));
  51.         }
  52.     }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment