25 lines
457 B
MiniZinc
25 lines
457 B
MiniZinc
% RUNS ON mzn20_fd
|
|
% RUNS ON mzn-fzn_fd
|
|
|
|
function var int:mydiv(var int: x, var int: y) =
|
|
let {constraint y != 0 } in
|
|
safediv(x, y)
|
|
;
|
|
|
|
function var int: safediv(var int: x, var int: y) :: promise_total =
|
|
let {
|
|
var 0..ub(x): q;
|
|
var 0..ub(y)-1: r;
|
|
constraint q*y + r = x;
|
|
constraint r < y;
|
|
} in q;
|
|
|
|
var int: x;
|
|
var int: y;
|
|
var int: z;
|
|
|
|
constraint x = 7;
|
|
constraint y = 1;
|
|
constraint z = mydiv(x,y);
|
|
|
|
solve satisfy; |