fbinnzhivko

05.00 Wiggle Wiggle

May 4th, 2016
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.68 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. using System.Text;
  4.  
  5. class WiggleWiggle
  6. {
  7.     static StringBuilder bits = new StringBuilder();
  8.  
  9.     static void Main()
  10.     {
  11.         long[] inputNumbers = Console.ReadLine().Split().Select(long.Parse).ToArray();
  12.  
  13.         for (int i = 0; i < inputNumbers.Length; i += 2)
  14.         {
  15.             char[] firstNumber = Convert.ToString(inputNumbers[i], 2).PadLeft(64, '0').ToCharArray();
  16.             char[] secondNumber = Convert.ToString(inputNumbers[i + 1], 2).PadLeft(64, '0').ToCharArray();
  17.  
  18.             for (int j = firstNumber.Length - 1; j > 0; j -= 2)
  19.             {
  20.                 char swap = new char();
  21.  
  22.                 if (firstNumber[j] != secondNumber[j])
  23.                 {
  24.                     swap = firstNumber[j];
  25.                     firstNumber[j] = secondNumber[j];
  26.                     secondNumber[j] = swap;
  27.                 }
  28.             }
  29.             long first = ConvertToDecimal(firstNumber);
  30.             Console.WriteLine("{0} {1}", first, bits);
  31.             bits.Clear();
  32.  
  33.             long second = ConvertToDecimal(secondNumber);
  34.             Console.WriteLine("{0} {1}", second, bits);
  35.             bits.Clear();
  36.         }
  37.     }
  38.  
  39.     static long ConvertToDecimal(char[] currentNumber)
  40.     {
  41.         for (int i = 0; i < currentNumber.Length; i++)
  42.         {
  43.             char currentBit = currentNumber[i];
  44.  
  45.             if (currentBit == '1')
  46.             {
  47.                 bits.Append('0');
  48.             }
  49.             else
  50.             {
  51.                 bits.Append('1');
  52.             }
  53.         }
  54.  
  55.         bits.Remove(0, 1);
  56.         long number = Convert.ToInt64(bits.ToString(), 2);
  57.         return number;
  58.     }
  59. }
Add Comment
Please, Sign In to add comment