Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.math.BigInteger;
- import java.util.Scanner;
- public class Bit_Flipper {
- public static void main(String[] args) {
- Scanner input = new Scanner(System.in);
- long n=input.nextLong();
- String nBinary=Long.toBinaryString(n);
- String zerosTo64="";
- for (int i=1;i<=64-nBinary.length();i++)
- {
- zerosTo64="0"+zerosTo64;
- }
- nBinary=zerosTo64+nBinary;
- // TODO Auto-generated method stub
- char [] nBinaryAsString=nBinary.toCharArray();
- for (int i=0;i<nBinaryAsString.length-2;i++)
- {
- if (nBinaryAsString[i]==nBinaryAsString[i+1]&&nBinaryAsString[i+1]==nBinaryAsString[i+2])
- {
- if (nBinaryAsString[i]=='0')
- {
- nBinaryAsString[i]='1';
- nBinaryAsString[i+1]='1';
- nBinaryAsString[i+2]='1';
- }
- else
- {
- nBinaryAsString[i]='0';
- nBinaryAsString[i+1]='0';
- nBinaryAsString[i+2]='0';
- }
- i=i+2;
- }
- }
- String finalString = new String(nBinaryAsString);
- BigInteger decimalValue = new BigInteger(finalString, 2);
- System.out.print(decimalValue);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement