Advertisement
fbinnzhivko

05.00 Change Even Bits

Apr 16th, 2016
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.07 KB | None | 0 0
  1. using System;
  2. public class ChangeEvenBits
  3. {
  4.     static void Main()
  5.     {
  6.         int n = int.Parse(Console.ReadLine());
  7.         int[] nums = new int[n];
  8.         for (int i = 0; i < nums.Length; i++)
  9.         {
  10.             nums[i] = int.Parse(Console.ReadLine());
  11.         }
  12.         ulong lastInput = ulong.Parse(Console.ReadLine());
  13.         const ulong one = 1;
  14.         int changedBits = 0;
  15.  
  16.         for (int i = 0; i < nums.Length; i++)
  17.         {
  18.             int num = nums[i];
  19.             int len = 0;
  20.             do
  21.             {
  22.                 num = num / 2;
  23.                 len++;
  24.             } while (num > 0);
  25.  
  26.             int bitPosition = 0;
  27.             while (len > 0)
  28.             {
  29.                 ulong mask = one << bitPosition;
  30.                 if ((lastInput & mask) == 0)
  31.                 {
  32.                     changedBits++;
  33.                 }
  34.                 lastInput |= mask;
  35.                 bitPosition += 2;
  36.                 len--;
  37.             }
  38.         }
  39.         Console.WriteLine(lastInput);
  40.         Console.WriteLine(changedBits);
  41.     }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement