首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

编程 算法解决思路

2012-03-09 
编程 算法1000!这个数中有多少个二,比如日2343541432中就有2个2[解决办法]在java版很多算法都不用自己写比

编程 算法
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');    }        } 

热点排行