#include /* Hanojski tornjevi s n diskova. Ispisuje redosljed poteza, tj. prebacivanja (najgornjih) diskova. */ void prebaci_jednog(int odakle, int kamo) { printf(" prebaci s %d na %d\n", odakle, kamo); return; } /* Funkcija ima sva tri stapa u argumentima, ukljucivo i pomocni. Ima nepotrebne pozive za n = 0 (koji nista ne rade). */ void Hanojski_tornjevi(int n, int odakle, int kamo, int pomocni) { if (n > 0) { Hanojski_tornjevi(n - 1, odakle, pomocni, kamo); prebaci_jednog(odakle, kamo); Hanojski_tornjevi(n - 1, pomocni, kamo, odakle); } return; } int main(void) { int n; for (n = 1; n <= 5; ++n) { printf("\n Prebaci %d diskova s 1 na 3:\n", n); Hanojski_tornjevi(n, 1, 3, 2); } return 0; }