A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘小记. 中级黑马   /  2014-7-26 14:37  /  6481 人查看  /  26 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘小记. 于 2014-7-31 13:20 编辑

public class Test9 {
        public static void main(String[] args){
                //定义一个数组
                long[] a=new long[501];
                 int i=2,j=1;
                a[1]=1;
        //往数组里存放数,如1*2 3*4 5*6 7*8 9*10这样只用500个数组空间就OK了
        while(i<=1000){
                a[j]=i*(++i);
                j++;i++;
        }
        
        int z=0;
        //在建一个for循环调出数组里的数
        for(int c=1;c<=500;c++){
                //判断是否是后面有零的数
                if(a[c]%10!=0){
                        continue;
                }
                //如果后面有零,那么Z就累加。之后清除0继续判断
                while(a[c]%10==0){
                     z++;
                     a[c]=a[c]/10;
                        
                }}
                System.out.println(z);
                        
        }}
这个程序对么。
运行结果:223

26 个回复

正序浏览
昨天刚刚做过  试过各种方法   感觉还是只有 BigInteger 能算出来   其他的靠纯逻辑  想了一上午还是想不出擦
对了  你这个答案是错的  是472
回复 使用道具 举报
彭OO 初级黑马 2015-9-18 13:54:47
26#
star5603 发表于 2014-7-26 16:19
你如果想算出结果,那就用BIgInteger类,然后遍历一个一个数。
如果找规律(只有尾部有规律,全部的不行 ...

尝试一下你的第二种方法。
回复 使用道具 举报
这道题真的不是特别好想,看了人家的方法,才顿悟了,感觉自己需要加倍努力了!!!
回复 使用道具 举报
赞一个,这下真的受教啦!
回复 使用道具 举报
知道还有这样一个类
回复 使用道具 举报
还得加倍努力啊
回复 使用道具 举报
努力中。。。。。。
回复 使用道具 举报
看得头晕了·······还须努力了·
回复 使用道具 举报
也可以这样理解问题,一个数 n 的阶乘末尾有多少个 0 取决于从 1 到 n 的各个数的因子中 2 和 5 的个数, 而 2 的个数是远远多余 5 的个数的, 因此求出 5 的个数即可。
回复 使用道具 举报
醉、倾鯎 发表于 2014-7-26 17:05
嘛 这道题我基础考试的时候做过 你参考一下吧

这个题对了吗?
回复 使用道具 举报
这题很变态,看看,,,
回复 使用道具 举报
晕死  自己弄得那循环断不了。
学习了
回复 使用道具 举报
那份的哦。。
回复 使用道具 举报
icris 发表于 2014-7-26 17:17
结果 472
考虑到 9*12=108 ,中间的 0 应该没有规律,分段计算应该不行,况且就算只算末尾的 0 ,也要考 ...

黑马牛人就是多,这是我第一次使用BigInteger这个数据类型,精度没有限制,太强大了。
回复 使用道具 举报
不太懂,大数这个没怎么学。。。
回复 使用道具 举报
不明觉厉,但还是不太懂
回复 使用道具 举报
我也是查了好久,对各种解决方法似懂非懂
回复 使用道具 举报
学习了。。。。
回复 使用道具 举报
123456789654
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马