bestsss

FizzBuzz - constant time

May 4th, 2021 (edited)
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 0.63 KB | None | 0 0
  1. public class FizzBuzz {
  2.  
  3.      public static void main(String[] args) throws Throwable{
  4.            for (int i=1; i< 77; i++) System.out.println(fizzBuzz(i));
  5.            //new String[]{String.valueOf(n), "Fizz", "Buzz", "FizzBuzz"}[(-n%3 >>> 31 ^ 1) + ((-n%5 >>> 31 ^ 1) << 1)];
  6.      }
  7.  
  8.      static String fizzBuzz(int n) {
  9.            String[] s = {String.valueOf(n), "Fizz", "Buzz", "FizzBuzz"};//note String.valueOf(n) is not constant time, see http://pastebin.com/GdsAXKnv
  10.            int f = -n%3 >>> 31 ^ 1;//one when n%3 == 0 (uses the 'sign' bit)
  11.            int b = (-n%5 >>> 31 ^ 1) << 1;
  12.            return s[f+b];
  13.      }
  14. }
Add Comment
Please, Sign In to add comment