当前位置: 代码迷 >> J2SE >> 编程 算法解决思路
  详细解决方案

编程 算法解决思路

热度:720   发布时间:2016-04-24 01:54:25.0
编程 算法
1000!这个数中有多少个二,比如日2343541432中就有2个2

------解决方案--------------------
在java版很多算法都不用自己写
比如说这个。。。
Java code
BigInteger result = new BigInteger("1");        for(int i = 2;i < 1001;++i){            BigInteger temp = new BigInteger(String.valueOf(i));            result = temp.multiply(result);        }        String s = result.toString();        int count = 0;        for(int i = 0;i < s.length();++i){            if(s.charAt(i) == '2'){                ++count;            }        }        System.out.println(count);
------解决方案--------------------
Java code
public class Test {        public static void main(String[] args) {        System.out.println(deal());    }    public static String factorial(int n) { //求阶乘        BigDecimal ans = new BigDecimal(1);        for (int i = 1; i <= n; i++ ) {            ans = ans.multiply(new BigDecimal(i));        }        return ans.toPlainString();    }    public static int count(String s,char x) { //差数        int result = 0;        for (int i = 0; i < s.length(); i++) {            if (s.charAt(i) == x) {                result++;            }        }        return result;    }    public static int deal(){        return count(factorial(1000),'2');    }        }
  相关解决方案