Jeżeli pierwszy król jest zdrajcą, a wierny jest drugi król – to drugi król spowoduje dojście do porozumienia, a jako że nie będzie innych królów po nim – nikt nie zmieni już aktualnej decyzji.
W pierwszej rundzie algorytmu każdy generał podejmuje decyzję i rozsyła ją pozostałym. Dysponując pięcioma głosami każdy generał zapamiętuje wynik głosowania większościowego w zmiennej moja_wiekszosc. Dodatkowo zapisuje, ile głosów było za podjętą decyzję w zmiennej wiekszosc_glosow.
W drugiej rundzie król (i tylko on) przesyła swoją decyzję pozostałym generałom. Wybór króla odbywa się za pomocą dowolnego znanego wszystkim generałom algorytmu. Gdy generał otrzyma decyzję króla, sprawdza, iloma głosami została podjęta decyzja w poprzedniej rundzie, odczytując zmienną wiekszosc_glosow. Jeżeli większość była przeważająca (wiekszosc_glosow ma wartość większą od ), to decyzja króla jest ignorowana. W przeciwnym wypadku generałowie powinni zapomnieć o swoich poprzednich decyzjach i podporządkować się królowi. Następnie algorytm jest powtarzany drugi raz.
Algorytm można rozszerzyć na dowolną liczbę zdrajców.