n的阶乘末尾还有多少个0

n的阶乘末尾还有多少个0

个人信息:就读于燕大本科软件工程专业 目前大三;

本人博客:google搜索“cqs_2012”即可;

个人爱好:酷爱数据结构和算法,希望将来从事算法工作为人民作出自己的贡献;

博客内容:how many does the factorial of n have zero?

博客时间:2014-5-5;

编程语言:Java ;

编程坏境:Windows 7 专业版 x64;

编程工具:jdk,eclipse;

制图工具:office 2010 ppt;

硬件信息:7G-3 笔记本;


my words

nature is so beautiful.

problem( from beauty of programming )

how many do the factorial of n have zero?

my solution

first solution: get the n factorial, then get how many zero the end of it has.  

time cost: O(n)

second solution: 1 * 2 * 3 * 4 * ···· * n. we can know zero form 2 * 5, and know that the number of 2 is more than that of 5 in these factors. So we get the number of 5.

1) we can computer how many 5 factor every number from 1 to n have.

                           2) we can use n to get all the sum of number of 5 factor.



my code

	int _Number_n_factorial(int n)
	{
		int i = n;
		int result = 0;
		while(i > 0)
		{
			result += i/5 ;
			i = i/5;	
		}
		return result;
	}

program run out:


the line of 1 is 0
the line of 2 is 0
the line of 3 is 0
the line of 4 is 0
the line of 5 is 1
the line of 6 is 1
the line of 7 is 1
the line of 8 is 1
the line of 9 is 1
the line of 10 is 2
the line of 11 is 2
the line of 12 is 2
the line of 13 is 2
the line of 14 is 2
the line of 15 is 3
the line of 16 is 3
the line of 17 is 3
the line of 18 is 3
the line of 19 is 3
the line of 20 is 4
the line of 21 is 4
the line of 22 is 4
the line of 23 is 4
the line of 24 is 4
the line of 25 is 6
the line of 26 is 6
the line of 27 is 6
the line of 28 is 6
the line of 29 is 6
the line of 30 is 7
the line of 31 is 7
the line of 32 is 7
the line of 33 is 7
the line of 34 is 7
the line of 35 is 8
the line of 36 is 8
the line of 37 is 8
the line of 38 is 8
the line of 39 is 8
the line of 40 is 9
the line of 41 is 9
the line of 42 is 9
the line of 43 is 9
the line of 44 is 9
the line of 45 is 10
the line of 46 is 10
the line of 47 is 10
the line of 48 is 10
the line of 49 is 10
the line of 50 is 12
the line of 51 is 12
the line of 52 is 12
the line of 53 is 12
the line of 54 is 12
the line of 55 is 13
the line of 56 is 13
the line of 57 is 13
the line of 58 is 13
the line of 59 is 13
the line of 60 is 14
the line of 61 is 14
the line of 62 is 14
the line of 63 is 14
the line of 64 is 14
the line of 65 is 15
the line of 66 is 15
the line of 67 is 15
the line of 68 is 15
the line of 69 is 15
the line of 70 is 16
the line of 71 is 16
the line of 72 is 16
the line of 73 is 16
the line of 74 is 16
the line of 75 is 18
the line of 76 is 18
the line of 77 is 18
the line of 78 is 18
the line of 79 is 18
the line of 80 is 19
the line of 81 is 19
the line of 82 is 19
the line of 83 is 19
the line of 84 is 19
the line of 85 is 20
the line of 86 is 20
the line of 87 is 20
the line of 88 is 20
the line of 89 is 20
the line of 90 is 21
the line of 91 is 21
the line of 92 is 21
the line of 93 is 21
the line of 94 is 21
the line of 95 is 22
the line of 96 is 22
the line of 97 is 22
the line of 98 is 22
the line of 99 is 22

my code

test.java

package test;

public class test {

	public static void main(String[] args) {
		//System.in.read();
		int i = 1;
		int result;
		while( i<100 )
		{
			result = _Number_n_factorial(i);
			System.out.println("the line of "+i+" is "+result);
			i = i+1;
		}

	}
	
	public static int _Number_n_factorial(int n)
	{
		int i = n;
		int result = 0;
		while(i > 0)
		{
			result += i/5 ;
			i = i/5;	
		}
		return result;
	}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值