Advertisement
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 BitFlipper
- {
- static void Main()
- {
- ulong num = ulong.Parse(Console.ReadLine());
- string initialNumber = Convert.ToString((long)num, 2).PadLeft(64, '0');
- StringBuilder lastNumber = new StringBuilder(initialNumber);
- for (int i = 0; i < initialNumber.Length; i++)
- {
- if ((initialNumber[i] == initialNumber[i + 1]) && (initialNumber[i + 1] == initialNumber[i + 2]))
- {
- if (initialNumber[i] == '1')
- {
- lastNumber[i] = lastNumber[i + 1] = lastNumber[i + 2] = '0';
- i+= 2;
- }
- if (initialNumber[i] == '0')
- {
- lastNumber[i] = lastNumber[i + 1] = lastNumber[i + 2] = '1';
- i+= 2;
- }
- }
- if (i > 61)
- {
- break;
- }
- }
- string finalNumber = lastNumber.ToString();
- ulong result = Convert.ToUInt64(finalNumber, 2);
- Console.WriteLine(result);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement