首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

C语言经典算法之汉诺塔:四塔2

C语言经典算法之汉诺塔:四塔2

#include <stdio.h>
#include <math.h>
#define MAX_N 1000
int main()
{
double f[MAX_N];
int n,i,j;
double maxvalue,curvalue;
printf("Please input count:");
scanf("%d",&n);
if(n>=MAX_N){
printf("Out of range\n");
return -1;
}
f[1]=1.0,f[2]=3.0;
for(j=3;j<=n;j++)
{
maxvalue=pow(2,j);
for(i=1;i<j;i++)
{
curvalue=2*f+pow(2,j-i)-1;
if(curvalue<maxvalue)
maxvalue=curvalue;
else
break;
}
f[j]=maxvalue;
}
for(i=1;i<=n;i++)
printf("m[%d]=%f\n",i,f);
return 0;
}
返回列表