Advertisement
nmnikolov

05. Change Even Bits (micro3x)

Jul 27th, 2014
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.50 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. namespace ChangeBits
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             var n = int.Parse(Console.ReadLine());
  14.             var numbers = new int[n];
  15.             for (int i = 0; i < n; i++)
  16.             {
  17.                 numbers[i] = int.Parse(Console.ReadLine());
  18.             }
  19.             var L = int.Parse(Console.ReadLine());
  20.  
  21.             int changedBitsCounter = 0;
  22.  
  23.  
  24.             for (int i = 0; i < numbers.Length; i++)
  25.             {
  26.                 int bitsCount = CountBits(numbers[i]);
  27.  
  28.                 for (int j = 0; j < bitsCount; j++)
  29.                 {
  30.                     var check = (L >> j*2) & 1;
  31.                     if (check == 0)
  32.                     {
  33.                         changedBitsCounter++;
  34.                     }
  35.                     int mask = 1 << j * 2;
  36.                     L = L | mask;
  37.                 }
  38.             }
  39.  
  40.             Console.WriteLine(L);
  41.             Console.WriteLine(changedBitsCounter);
  42.         }
  43.  
  44.  
  45.         static int CountBits(int number)
  46.         {
  47.             int counter = 0;
  48.          
  49.             if (number == 0)
  50.             {
  51.                 counter = 1;              
  52.             }
  53.          
  54.             while (number != 0)
  55.             {
  56.                 counter++;
  57.                 number = number >> 1;
  58.             }
  59.             return counter;
  60.         }
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement