/* 
   Move disk 'diskNumber' from startPost to endPost using
   midPost for temporary storage.  Disk 1 is the smallest disk.
*/
MoveDisk(diskNumber, startPost, endPost, midPost)
{
   if (diskNumber > 1) {

       /* Move n-1 disks off the current disk (on startPost) and
          put them on the intermediate post (midPost)                  */
       MoveDisk(diskNumber-1, startPost, midPost, endPost); /* -- A -- */

       /* Move the largest disk.                                       */
       printf("Move disk number %d from post %d to post %d.\n", 
               diskNumber, startPost, endPost);

       /* Move all n-1 disks onto the end post                         */
       MoveDisk(diskNumber-1, midPost, endPost, startPost); /* -- B -- */  
   }
   else 
       printf("Move disk number 1 from post %d to post %d.\n", 
               startPost, endPost);      
}