Advertisement
ViktorMarinov

05.Wiggle Wiggle

Jul 14th, 2015
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.80 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7.  
  8. class WiggleWiggle
  9. {
  10.     static long changeBitTo(long n, int pos, int value)
  11.     {
  12.         if (value == 1)
  13.         {
  14.             n = n | ((long)1 << pos);
  15.         }
  16.         else
  17.         {
  18.             n = n & ~((long)1 << pos);
  19.         }
  20.         return n;
  21.     }
  22.     static void Main()
  23.     {
  24.         string[] strArr = Console.ReadLine().Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries);
  25.         long[] arr = new long[strArr.Length];
  26.         for (int i = 0; i < arr.Length; i++)
  27.         {
  28.             arr[i] = long.Parse(strArr[i]);
  29.         }
  30.         for (int i = 0; i < arr.Length - 1; i += 2)
  31.         {
  32.             long number1 = arr[i];
  33.             long number2 = arr[i + 1];
  34.             for (int j = 0; j < 63; j += 2)
  35.             {
  36.                 int bit1 = (int)(number1 >> j & 1);
  37.                 int bit2 = (int)(number2 >> j & 1);
  38.                 number1 = changeBitTo(number1, j, bit2);
  39.                 number2 = changeBitTo(number2, j, bit1);
  40.             }
  41.             arr[i] = (number1);
  42.             arr[i + 1] = (number2);
  43.  
  44.         }
  45.         StringBuilder[] binary = new StringBuilder[arr.Length];
  46.         for (int i = 0; i < arr.Length; i++)
  47.         {
  48.             binary[i] = new StringBuilder(Convert.ToString(arr[i], 2).PadLeft(63, '0'));
  49.         }
  50.  
  51.         foreach (var item in binary)
  52.         {
  53.             for (int i = 0; i < item.Length; i++)
  54.             {
  55.                 if (item[i] == '0')
  56.                     item[i] = '1';
  57.                 else
  58.                     item[i] = '0';
  59.             }
  60.         }
  61.         foreach (var item in binary)
  62.         {
  63.             Console.WriteLine("{0} {1}",Convert.ToUInt64(item.ToString(), 2), item);
  64.         }
  65.        
  66.     }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement