public static int FloorRemainder(int x, int y) { if (y == -1) return 0; int r = x % y; if (x >= 0) { if (y > 0) { return r; } else if (r == 0) { return 0; } else { return r + y; } } else { if (y > 0) { if (r == 0) { return 0; } else { return r + y; } } else { return r; } } }