View difference between Paste ID: TPcwmsJC and AhrCRGxQ
SHOW: | | - or go back to the newest paste.
1
using System;
2
3
class ChangeEvenBits
4
{
5
    static void Main()
6
    {
7
        int numberOfInputs = int.Parse(Console.ReadLine());
8
9
        int biggestNumber = Int32.MinValue;
10
11
        for (int i = 0; i < numberOfInputs; i++)
12
        {
13
            int number = int.Parse(Console.ReadLine());
14
            biggestNumber = Math.Max(number, biggestNumber);
15
        }
16
17
        int numberToChange = int.Parse(Console.ReadLine());
18
19
        int bitsToChange = getBitsCount(biggestNumber);
20
21
        int bitsChanged = 0;
22
23
        for (int j = 0; j < bitsToChange; j++)
24
        {
25
            int currentBit = (numberToChange >> j * 2) & 1;
26
            int mask = 1 << j * 2;
27
28
            if (currentBit == 0)
29
            {
30
                bitsChanged++;
31
                numberToChange = numberToChange | mask;
32
            }
33
34
        }
35
36
        Console.WriteLine(numberToChange);
37
        Console.WriteLine(bitsChanged);
38
39
    }
40
41
    public static int getBitsCount(int number)
42
    {
43-
        int count = 0;
43+
        int count = 0;      
44
45-
        if (number == 0)
45+
46
        {
47-
            return 1;
47+
48
            number = number >> 1;
49
        }
50
51
        return Math.Max(1, count);
52
    }
53
}