Очень интересный код, чтобы найти минимум, и он работает!
Единственное ограничение, числа должны быть положительными!
Смысл прост: когда x < y
мы возвращаем 0
, в противном случае мы возвращаем x - y
.
Теперь рассмотрим все возможные случаи с 0
x
find(x, find(x,y)) == find(x, 0) == x - 0 == x == min(x, y)
x == y:
find(x, find(x,y)) == find(x, x - y) == find(x, 0) == x - 0 == x == min(x, y)
x> y:
find(x, find(x,y)) == find(x, x - y) == x - (x - y) == y == min(x, y)
с отрицательными числами не работает.