#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==0 ) return;
else
moveDisks(from,anotherPole,n-1);
moveOneDisk(from,to);
moveDisks(from,anotherPole,n-1);
}
int main(void) {
int n = 5;
printf("%d枚の円盤を杭1から杭3に移動させる手順は以下のとおり:\n", n
); moveDisks(1, 3, n);
return 0;
}
CSNpbmNsdWRlIDxzdGRpby5oPgoJIHZvaWQgbW92ZU9uZURpc2soaW50IGZyb20sIGludCB0bykgewoJIHByaW50Zigi5p2tJWTjgYvjgonmna0lZOOBq+enu+WLlVxuIiwgZnJvbSwgdG8pOwoJIH0KCSB2b2lkIG1vdmVEaXNrcyhpbnQgZnJvbSwgaW50IHRvICwgaW50IG4pIHsKCSBpbnQgYW5vdGhlclBvbGUgPSA2LShmcm9tK3RvKTsKCSBpZiAoIG49PTAgKSByZXR1cm47CgkgZWxzZQoJIG1vdmVEaXNrcyhmcm9tLGFub3RoZXJQb2xlLG4tMSk7CgkgbW92ZU9uZURpc2soZnJvbSx0byk7CgkgbW92ZURpc2tzKGZyb20sYW5vdGhlclBvbGUsbi0xKTsKCgkgCgkgfQoJIGludCBtYWluKHZvaWQpIHsKCSBpbnQgbiA9IDU7CgkKCXByaW50ZigiJWTmnprjga7lhobnm6TjgpLmna0x44GL44KJ5p2tM+OBq+enu+WLleOBleOBm+OCi+aJi+mghuOBr+S7peS4i+OBruOBqOOBiuOCiu+8mlxuIiwgbik7CgkgbW92ZURpc2tzKDEsIDMsIG4pOwoJIHJldHVybiAwOwoJIH0K