梦殇国际

标题: 解:10000的阶乘末尾有多少个0? [打印本页]

作者: 阿星    时间: 2015-10-20 12:45
标题: 解:10000的阶乘末尾有多少个0?
下面的代码大概可以实现,我也是网上搜的一个朋友遇到的java面试题中的其中一个
  1. package com.hisen.test;

  2. public class JC {
  3. public static void main(String[] args) {
  4.         int x = 10000;
  5.         int count = 0;
  6.         while (x>0)
  7.         {
  8.               count = count + x / 5;
  9.               x = x / 5;
  10.         }
  11.         System.out.println(count);
  12. }
  13. }
复制代码
利用到了一个数学知识
令f(x)表示正整数x末尾所含有的“0”的个数,则有:
当0 < n < 5时,f(n!) = 0;
当n >= 5时,f(n!) = k + f(k!), 其中 k = n / 5(取整)。


通俗的解释就是:
求5...所有5都被2拉去产生0了


但是我还是不是很明白,有数学好的没?

找到了答案:http://blog.chinaunix.net/uid-20766194-id-1850404.html



作者: 天才小肥熊    时间: 2015-10-20 12:51
数学渣

作者: 小慕容    时间: 2015-10-20 13:11
大赞

作者: 我全都想要    时间: 2015-10-20 13:16
看不懂啊

作者: 磊    时间: 2015-10-20 13:27
卧槽,那么短的代码

作者: smoke    时间: 2015-10-20 14:09
看不懂

作者: 阿星    时间: 2015-10-20 16:33
smoke 发表于 2015-10-20 14:09
看不懂

难不成您不在阶乘是什么?

作者: 血染丶星辰    时间: 2015-10-20 18:13
我会算1+2=4的算术

作者: smoke    时间: 2015-10-20 18:32
阿星 发表于 2015-10-20 16:33
难不成您不在阶乘是什么?

我是学渣





欢迎光临 梦殇国际 (https://www.714.hk/) Powered by Discuz! X3.4