网站上传安装,wordpress迁移跳转原网站,中信建设公司好进去吗,上海影视公司题意#xff1a;汉诺塔题目的变形#xff0c;有4根柱子#xff0c;可以把顶部的k个盘子移到最后的柱子上#xff0c;然后按照汉诺塔#xff0c;问最后走的最小步数。 思路#xff1a;递推#xff0c;经过递推可以发现f[n] f[k]*2g[n-k]#xff0c;其中f[n]为4个柱子时…题意汉诺塔题目的变形有4根柱子可以把顶部的k个盘子移到最后的柱子上然后按照汉诺塔问最后走的最小步数。 思路递推经过递推可以发现f[n] f[k]*2g[n-k]其中f[n]为4个柱子时的最小步数g[n]为3根柱子的最小步数。要用java大数来解决。 code import java.math.*;
import java.util.Scanner;public class Main {public static void main(String args[]){BigInteger f[] new BigInteger[10010];f[0] BigInteger.valueOf(0);f[1] BigInteger.valueOf(1);int i 2;int k1;while(i 10000){BigInteger add BigInteger.valueOf(1).shiftLeft(k);for(int j0; jk1 i10000; j){f[i] f[i-1].add(add);i;}k;} Scanner cin new Scanner(System.in);while(cin.hasNext()){int n cin.nextInt();System.out.println(f[n]); }}
}