Implementação do Zhu-Takaoka em Java, por @fhcj2