- 论坛徽章:
- 0
|
原帖由 cjaizss 于 2008-5-2 16:10 发表 ![]()
。。。。。。。
“网上那段解决汉诺塔问题的递规算法的代码”,哪段啊?
"解决这个问题,人不需要得出一个简化的公式,只需要把这个实际问题抽象成一个能够输入计算机的模型."不需要得到简化的公式的想法是不对 ...
网上一搜一大堆,网上讲递规的经典例子
#include <stdio.h>
void hano(int n,char a,char b,char c)
{
if(n==1)
printf("\t将%d个盘片从%c移动到%c\n",n,a,c);
else {
hano(n-1,a,c,b);
printf("\t将第%d个盘片从%c移动到%c\n",n,a,c);
hano(n-1,b,a,c);
}
}
main()
{
int n;
printf("输入将要移动多少个盘子n:" ;
scanf("%d",&n);
printf("递归结果:\n" ;
hano(n,'x','y','z');
}
------------------------------------------------------------------------------
比如对于汉诺塔问题,如果我们已经得出移动次数为2^n-1了,那计算机都没啥用了撒,基本上就是叫计算机计算2^n等于多少了.
递规的例子却这么复杂 |
|