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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© pisces 中级黑马   /  2015-5-7 21:54  /  691 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


求1000!的结果末尾有多少个0

15 个回复

倒序浏览
必须保佑 ~~一生平安啊~~
回复 使用道具 举报
把整数变成字符数组  你应该会变得吧  在然后判断各个角标对应的是不是0就可以刻  然后在做一个计数器
回复 使用道具 举报
可以考虑用BigInteger
回复 使用道具 举报
定义一个计数器,然后把这个数对10循环取模,用计数器记录住取模的次数,你试一下
回复 使用道具 举报
转成字符数组,获取角标值,判断是否为0,计时器累加
回复 使用道具 举报
本帖最后由 1017161726 于 2015-5-8 10:55 编辑

用BigInteger。你需要去API里查一下用法和介绍。我也是看了才懂得。import java.math.BigInteger;
class Demo
{
        public static void main(String [] args)
        {
                BigInteger bi=BigInteger.valueOf(1);
                for (int x=2;x<=1000;x++)
                {
                        bi = bi.multiply(BigInteger.valueOf(x));
                       
                }
               
                int sum=0;
                StringBuilder sb=new StringBuilder();
                sb.append(bi);
                String s=sb.reverse().toString();
                int n=0;
                while((s.charAt(n))=='0')
                {
                        sum++;
                        n++;
                }
                System.out.println(sum);
        }
}
希望你多用几遍,学会。




评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

回复 使用道具 举报
不知道怎么了,粘贴代码块进去,粘贴了十几遍都不能保存,不用代码块了,直接这么看吧。
回复 使用道具 举报
我的测试题里面也有这题,学习了
回复 使用道具 举报
public class Test9 {
        public static void main(String[] args){
                //定义一个长整形变量product,初始值赋1,用来盛装1000!的结果
                long product=1;
                //for循环1000次,求出1000!的结果
                for(int i=1;i<=1000;i++){
                        product=product*i;
                }
                //定义整形变量a,用来装1000!的结果中包含的零的个数
                int a=0;
                //for循环里面嵌套if,条件语句,依次判断product的个、十、百....直到最大位,如果为0,则a+1.
                for(int i=1;i<=1000;i++){
                        product=product/10;
                        if(product%10==0)
                                a=a+1;
                }
                //输出最终结果。
                System.out.println("1000!包含"+a+"个零");
        }

}
自个做的代码块。
回复 使用道具 举报
我的测试题也有做过。
回复 使用道具 举报
求有多少个5和2的因子对
回复 使用道具 举报
谢谢 各位 借鉴了
回复 使用道具 举报
除以10就好了
回复 使用道具 举报
看看我的思想吧:我写得非常详细:
[code]/*
1*2*3*4*5*6*……一直乘到1000,问末尾共有多少个零?

是这样的,有一个五,就会有一个零,例如:2*5=10,12*15=180.
因此,可以列出算式:1000/5=200,再看200里有多少个五,200/5=40,
诸如此类,40/5=8,可是8不能整除五,不过可以看到8里面只有一个五,
所以【8/5】=1,最后200+40+8+1=249个零。

上述是属于具体的分析方法,和发现其中的规律,下面我用代码实现:
其实就是实现:(1000/5)+(1000/25)+(1000/125)……的一个过程……
相信代码你也能写出来的……
回复 使用道具 举报
做一个计数器,然后让各个角标对应0就ok了.  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马