#include <stdio.h>
void moveOneDisk(int from, int to)
{
printf("杭%dから杭%dに移動\n", from
, to
); }
void moveDisks(int from, int to , int n)
{
int anotherPole = 6-(from+to);
if(n==1)
{
moveOneDisk(from,to);
}
else
{
moveDisks(from,anotherPole,n-1);
moveOneDisk(from,to);
moveDisks(anotherPole,to,n-1);
}
}
int main(void) {
int n=5;
printf("%d枚の円盤を杭1から杭3に移動させる手順は以下のとおり:\n", n
); moveDisks(1,3,n);
return 0;
}
CiNpbmNsdWRlIDxzdGRpby5oPgp2b2lkIG1vdmVPbmVEaXNrKGludCBmcm9tLCBpbnQgdG8pCnsKCXByaW50Zigi5p2tJWTjgYvjgonmna0lZOOBq+enu+WLlVxuIiwgZnJvbSwgdG8pOwp9CnZvaWQgbW92ZURpc2tzKGludCBmcm9tLCBpbnQgdG8gLCBpbnQgbikKewoJaW50IGFub3RoZXJQb2xlID0gNi0oZnJvbSt0byk7CglpZihuPT0xKQoJewoJCW1vdmVPbmVEaXNrKGZyb20sdG8pOwoJfQoJCWVsc2UKCQl7CgkJCW1vdmVEaXNrcyhmcm9tLGFub3RoZXJQb2xlLG4tMSk7CgkJCW1vdmVPbmVEaXNrKGZyb20sdG8pOwoJCQltb3ZlRGlza3MoYW5vdGhlclBvbGUsdG8sbi0xKTsKCQl9Cn0KaW50IG1haW4odm9pZCkgewppbnQgbj01OwpwcmludGYoIiVk5p6a44Gu5YaG55uk44KS5p2tMeOBi+OCieadrTPjgavnp7vli5XjgZXjgZvjgovmiYvpoIbjga/ku6XkuIvjga7jgajjgYrjgoo6XG4iLCBuKTsKbW92ZURpc2tzKDEsMyxuKTsKcmV0dXJuIDA7Cn0K