#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+CnZvaWQgbW92ZU9uZURpc2soaW50IGZyb20sIGludCB0byl7CiAgICBwcmludGYoIuadrSVk44GL44KJ5p2tJWTjgavnp7vli5VcbiIsIGZyb20sIHRvKTsKfQp2b2lkIG1vdmVEaXNrcyhpbnQgZnJvbSwgaW50IHRvLCBpbnQgbil7CiAgICBpbnQgYW5vdGhlclBvbGUgPSA2IC0gKGZyb20gKyB0byk7CiAgICBpZihuID09IDEpewogICAgICAgIG1vdmVPbmVEaXNrKGZyb20sIHRvKTsKICAgIH0KICAgIGVsc2V7CiAgICAgICAgbW92ZURpc2tzKGZyb20sIGFub3RoZXJQb2xlLCBuLTEpOwogICAgICAgIG1vdmVPbmVEaXNrKGZyb20sIHRvKTsKICAgICAgICBtb3ZlRGlza3MoYW5vdGhlclBvbGUsIHRvLCBuLTEpOwogICAgfQp9CmludCBtYWluKHZvaWQpIHsKICAgIGludCBuID0gNTsKICAgIHByaW50ZigiJWTmnprjga7lhobnm6TjgpLmna0x44GL44KJ5p2tM+OBq+enu+WLleOBleOBm+OCi+aJi+mghuOBr+S7peS4i+OBruOBqOOBiuOCijpcbiIsIG4pOwogICAgbW92ZURpc2tzKDEsIDMsIG4pOwogICAgcmV0dXJuIDA7Cn0=