#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;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIG1vdmVPbmVEaXNrKGludCBmcm9tLCBpbnQgdG8pewogICAgcHJpbnRmKCLmna0lZOOBi+OCieadrSVk44Gr56e75YuVXG4iLCBmcm9tLCB0byk7Cn0KCnZvaWQgbW92ZURpc2tzKGludCBmcm9tLCBpbnQgdG8sIGludCBuKXsKICAgIGludCBhbm90aGVyUG9sZSA9IDYgLSAoZnJvbSArIHRvKTsKCiAgICBpZihuID09IDEpewogICAgICAgIG1vdmVPbmVEaXNrKGZyb20sIHRvKTsKICAgIH0gZWxzZSB7CiAgICAgICAgbW92ZURpc2tzKGZyb20sIGFub3RoZXJQb2xlLCBuIC0gMSk7CiAgICAgICAgbW92ZU9uZURpc2soZnJvbSwgdG8pOwogICAgICAgIG1vdmVEaXNrcyhhbm90aGVyUG9sZSwgdG8sIG4gLSAxKTsKICAgIH0KfQoKaW50IG1haW4odm9pZCkgewogICAgaW50IG4gPSA1OwogICAgcHJpbnRmKCIlZOaemuOBruWGhuebpOOCkuadrTHjgYvjgonmna0z44Gr56e75YuV44GV44Gb44KL5omL6aCG44Gv5Lul5LiL44Gu44Go44GK44KKOlxuIiwgbik7CiAgICBtb3ZlRGlza3MoMSwgMywgbik7CiAgICByZXR1cm4gMDsKfQoKCg==