本文主要是介绍20180520 -DP1 K - The Priest Mathematician,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
忙活了一天六级口语,考的还是很凉...今天主要看了这个汉诺塔的题目,题意:4根柱子的汉诺塔,汉诺塔题目的变形,有4根柱子,可以把顶部的k个盘子移到最后的柱子上,然后按照汉诺塔,问最后走的最小步数。
思路:
一开始看了看以前的汉诺塔问题,递归。而这个汉诺塔问题主要是找规律了,看了好久也没找到,最后看了题解,感觉遇到这种题目,自己很难做出来,还需要加强!
代码:
import java.math.BigInteger;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);BigInteger[] f=new BigInteger[10005];BigInteger two =new BigInteger("2");BigInteger temp= BigInteger.ONE;f[0] = BigInteger.ZERO;int cnt=0,k=1;for(int i=1;i<=10001;i++){f[i]=f[i-1].add(temp);cnt++;if(cnt==k) {cnt=0;k++;temp=temp.multiply(two);}}while(in.hasNext()) {int n=in.nextInt();System.out.println(f[n]);}in.close();}
}
地址:
点击打开链接
这篇关于20180520 -DP1 K - The Priest Mathematician的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!