Προς το περιεχόμενο

Oι Πύργοι του Ανόι ...plz help!!!


Giorgoc

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σας! Θα μπορούσατε να με βοηθήσετε με δύο προγράμματα που έχω; Έχω τους κώδικες και πρέπει να εξηγήσω τι ακριβώς κάνουν και γενικότερα να εξηγήσω με λεπτομέρεια πως και γιατί τα προγράμματα αυτά επιλύουν το πρόβλημα.

Πρόκειται για τους περίφημους Πύργους του Ανόι, αυτό υλοποιούν τα προγράμματα. Απλά δεν καταλαβαίνω τη λογική.

 

 

Πρόγραμμα 1:

 

/* Start post is post 0. */

/* If # posts even, then final post is post 1, else is post 2 */

#include <stdio.h>

#include <stdlib.h>

void main(void)

{

int n, x;

printf( "How many disks? " );

scanf( "%d", &n );

puts( "\n\n" );

for (x=1; x < (1 << n); x++)

printf( "move from pole %i to pole %i.\n", (x&x-1)%3, ((x|x-1)+1)%3 );

}

 

 

Πρόγραμμα 2:

 

/* Start post is post 0. */

/* If # posts even, then final post is post 1, else is post 2 */

#include <stdio.h>

#include <stdlib.h>

int main(void)

{ int n, x, to, fr;

unsigned int i, j;

printf( "How many disks? " );

scanf( "%d", &n );

puts( "\n\n" );

for (x=1; x < (1 << n); x++) {

i=x&x-1; fr=(i+i/3)&3;

i=(x|x-1)+1; to=(i+i/3)&3;

for(i=x, j=1; ; i>>=1, j++) { if(i&1) break; }

printf( "move disc %i from %i to %i\n", j, fr, to ); } }

 

Ευχαριστω πολυ!!! :grin:

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...