斐波那契数列和计算1000的阶乘的所有的零

斐波那契数列

规律:

1 1 2 3 5 8 13…….

不难发现前面两个数相加等于后面一个数,比如:2=1+1;3=2+1;…

public class Demo4 {

    /**找规律,求数组最后一个数的和
     * 1 1 2 3 5 8 13
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        /*int[] arr = new int[8];
        arr[0] = 1;
        arr[1] = 1;
        for (int i = 2; i < arr.length; i++) {
            arr[i] = arr[i - 2] + arr[i - 1];
        }
        System.out.println(arr[arr.length - 1]);*/
        //用递归调用方法
        System.out.println(fun(8));
    }
    public static int fun(int x){
        if(x==1||x==2){
            return 1;
        }else{
            return fun(x-2)+fun(x-1);
        }
    }
}

计算1000的阶乘的所有的零

1000的阶乘数太大,int根本装不下,所以用BigInteger

public class Demo5_step {
    /**
     * 计算1000的阶乘的所有的零
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        BigInteger bi1=new BigInteger("1");
        for(int i=2;i<=1000;i++){
            BigInteger bi2=new BigInteger(i+"");
            bi1=bi1.multiply(bi2);
        }
        //System.out.println(bi1);
        String str=bi1.toString();
        int count=0;
        for(int i=0;i<str.length();i++){
            if('0'==str.charAt(i)){
                count++;
            }

        }
        System.out.println(count);
    }

}

猜你喜欢

转载自blog.csdn.net/lan266548_ning/article/details/80598850
今日推荐