BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #44881同步于 2010/10/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[合集] 判断一十进制整数阶乘的末尾有多少个0,怎么考虑?

shenlei
2010/10/16镜像同步0 回复
☆─────────────────────────────────────☆ youziboy (柚子) 于 (Thu Dec 17 15:33:17 2009) 提到: 判断一十进制整数阶乘的末尾有多少个0,怎么考虑? ☆─────────────────────────────────────☆ jokerlee (Jackal The Dire) 于 (Thu Dec 17 15:41:20 2009) 提到: 递推+打表? ☆─────────────────────────────────────☆ coolwc (小包) 于 (Thu Dec 17 15:44:21 2009) 提到: 形成0只能因为2*5 因此只要判断2和5的对数就行 而且又因为被5整除的几率要比被2整除的几率小得多 因为只需要计算5的个数就行 【 在 jokerlee (Jackal The Dire) 的大作中提到: 】 : 递推+打表? ☆─────────────────────────────────────☆ Quake (奇迹邮递员) 于 (Thu Dec 17 15:49:53 2009) 提到: 【 在 jokerlee 的大作中提到: 】 : 递推+打表? 记得,这是初中的奥数题。。。。 ☆─────────────────────────────────────☆ jokerlee (Jackal The Dire) 于 (Thu Dec 17 16:08:15 2009) 提到: f(n) = f(n-1) + f%5==0?f(n/5)+1:0 ☆─────────────────────────────────────☆ Wing (Fight for future) 于 (Thu Dec 17 16:23:10 2009) 提到: 数末尾出现的0必然是5和2相乘的结果,所以只需要计算阶乘结果可以拆成多少个5和2的组合就行了,直接对阶乘式中所有数进行拆解,那能拆解出5的只可能是5的倍数,而能拆解出多少个5则看这个数是5的几次方的倍数了,求出可拆解出的所有5的个数,由于2肯定比5多,所以有多少个5就是多少个0 ☆─────────────────────────────────────☆ Telenav (Telenav) 于 (Thu Dec 17 16:28:06 2009) 提到: n/5 + n/25 + n/125 + n/625... ☆─────────────────────────────────────☆ youziboy (柚子) 于 (Thu Dec 17 16:33:25 2009) 提到: 是不是还忘了统计10,100啊? ☆─────────────────────────────────────☆ jokerlee (Jackal The Dire) 于 (Thu Dec 17 16:35:34 2009) 提到: 【 在 youziboy 的大作中提到: 】 : 是不是还忘了统计10,100啊? 你用这个公式推下f(n) = f(n-1) + f%5==0?f(n/5)+1:0 10和100也能被5整除,算的是质因子里含有多少个5 ☆─────────────────────────────────────☆ coolwc (小包) 于 (Thu Dec 17 16:47:03 2009) 提到: 你这个要计算n次求余 【 在 jokerlee (Jackal The Dire) 的大作中提到: 】 : 你用这个公式推下f(n) = f(n-1) + f%5==0?f(n/5)+1:0 : 10和100也能被5整除,算的是质因子里含有多少个5 ☆─────────────────────────────────────☆ jokerlee (Jackal The Dire) 于 (Thu Dec 17 16:52:35 2009) 提到: 【 在 coolwc 的大作中提到: 】 : 你这个要计算n次求余 求余比除法快, 而且求余可以优化, 对5求余只需要判断 (n & 0x0000000f) == 0x0101 || (n & 0x000000f) == 0x1010 ☆─────────────────────────────────────☆ coolwc (小包) 于 (Thu Dec 17 17:08:13 2009) 提到: 对100来说 你要循环100次 我只要2次 【 在 jokerlee (Jackal The Dire) 的大作中提到: 】 : 求余比除法快, 而且求余可以优化, 对5求余只需要判断 : (n & 0x0000000f) == 0x0101 || (n & 0x000000f) == 0x1010 ☆─────────────────────────────────────☆ jokerlee (Jackal The Dire) 于 (Thu Dec 17 17:22:01 2009) 提到: 【 在 coolwc 的大作中提到: 】 : 对100来说 你要循环100次 我只要2次 我站在做题的角度上考虑 这样做事为了打表,以后遇到<100的直接输出了 ☆─────────────────────────────────────☆ coolwc (小包) 于 (Thu Dec 17 17:37:04 2009) 提到: 那遇到10000呢 是不是还得计算9900次 【 在 jokerlee (Jackal The Dire) 的大作中提到: 】 : 我站在做题的角度上考虑 : 这样做事为了打表,以后遇到<100的直接输出了 ☆─────────────────────────────────────☆ hs (HelloWorld!) 于 (Thu Dec 17 19:20:44 2009) 提到: 传说中的编程之美中的题 ☆─────────────────────────────────────☆ wolf5x (鸟) 于 (Thu Dec 17 20:20:09 2009) 提到: RE 【 在 Telenav 的大作中提到: 】 : n/5 + n/25 + n/125 + n/625... ☆─────────────────────────────────────☆ a206206 (混沌世界) 于 (Thu Dec 17 21:57:49 2009) 提到: 都是大牛啊
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。