


















三柱汉诺塔最小步数。
1
int f3(n) {
2
if (f3[n]) return f3[n];
3
else {
4
if (n == 1 ) {
5
f3[n] = 1 ;
6
return 1 ;
7
}
8
f3[n] = 2 * f3(n - 1 ) + 1 ;
9
return f3[n];
10
}
11
}
四柱汉诺塔最小步数。
1
int f4(n){
2
if(f4[n]==0){
3
if(n==1) {
4
f4[1]==1;
5
return 1;
6
}
7
min=2*f4(1)+f3(n-1);
8
for(int i=2;i<n;++i){
9
u=2*f4(i)+f3(n-i);
10
if(u<min) min=u;
11
}
12
f4[n]=min;
13
return min;
14
} else return f4[n];
15
}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。