汉诺塔小游戏的游戏规则:有三个柱子abc,其a柱上面有若干个圆盘,要求借助三个柱子将a柱上面的圆盘按顺序移动到c柱上去,并且c柱上每次只能增加一个圆盘,问需要移动多少次才可以完成此游戏。
一、首先理解题目
以4个圆盘举例
循环次数 | a柱 | b柱 | c柱 |
---|---|---|---|
开始数值 | 4 | 0 | 0 |
第一次循环 | 1 | 3 | 0 |
0 | 3 | 1 | |
第二次循环 | 2 | 1 | 1 |
2 | 0 | 1 | |
第三次循环 | 1 | 1 | 2 |
0 | 1 | 3 | |
第四次循环 | 0 | 0 | 4 |
经过四次循环,a柱上的圆盘全部按顺序放在c柱上
二、写出主函数
审题理清思路,接下来就是主函数的书写
int main()
{
int i=1;
printf("请输入圆盘个数:");
scanf("%d",&i);printf("%d\n",limit(i));
system("pause");
return 0;
}
三、自定义函数的书写
确定好主函数的框架,接着开始构建自定义函数内部,大体就是由一个循环函数构成:
int limit(int n)
{
int a=1,b=0,c=0,i=1,count=0;
for(i=1;i<=n;i++)
{
c=a+c;
b=n-i;
count=count+2;
}
return count-1;
}
四、总结
到此汉诺塔小游戏就完成啦!