Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- class Program
- {
- static void Main()
- {
- uint n = uint.Parse(Console.ReadLine());
- bool finalISNull = false;
- while (true)
- {
- string whichBit = Console.ReadLine();
- if (whichBit == "Odd")
- {
- uint mask = 1 << 30;
- uint newNum = 0;
- for (int i = 0; i < 31; i += 2, mask >>= 2)
- {
- if ((n & mask) > 0)
- {
- newNum |= 1;
- if (i < 30)
- {
- newNum <<= 1;
- }
- else
- {
- finalISNull = false;
- }
- }
- else
- {
- newNum <<= 1;
- finalISNull = true;
- }
- }
- n = newNum;
- if (finalISNull)
- {
- n >>= 1;
- }
- }
- else if (whichBit == "Even")
- {
- uint mask = 1u << 31;
- uint newNum = 0;
- for (int i = 0; i < 32; i += 2, mask >>= 2)
- {
- if ((n & mask) > 0)
- {
- newNum |= 1;
- if (i < 31)
- {
- newNum <<= 1;
- }
- else
- {
- finalISNull = false;
- }
- }
- else
- {
- newNum <<= 1;
- finalISNull = true;
- }
- }
- n = newNum;
- if (finalISNull)
- {
- n >>= 1;
- }
- }
- else
- {
- int countONBits = 0;
- uint mask = 1;
- for (int i = 0; i < 32; i++, mask <<= 1)
- {
- if ((mask & n) > 0)
- {
- countONBits++;
- }
- }
- Console.WriteLine("{0} -> {1}", n, countONBits);
- return;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment