Die Lösung für Delphi sähe folgendermaßen aus:
Sicher ist das jetzt viel zu umständlich gedacht, und du musst es auch noch in die Sprache deiner Wahl umschreiben, aber immerhin - es funktioniert. ^^ (Hat zumindest bei zwanzig Tests funktioniert, natürlich kann ich für nichts garantieren...)