Moderate 阶层的结尾0个数 @CareerCup
来源:互联网 发布:录屏软件画中画 编辑:程序博客网 时间:2024/04/30 11:21
思路和《经典面试题:100的阶乘有几个结尾零》是一样的,但代码更简洁了,尤其是第二种方法!
package Moderate;/** * Write an algorithm which computes the number of trailing zeros in n * factorial. * * 译文: * * 写一个算法计算n的阶乘末尾0的个数。 * */public class S17_3 {public static int factorsOf5(int i) {int count = 0;while (i % 5 == 0) {count++;i /= 5;}return count;}// 第一种方法就是对阶层的所有因子都计算有几个5因子public static int countFactZeros(int num) {int count = 0;for (int i = 2; i <= num; i++) {count += factorsOf5(i);}return count;}// 第二种方法,更快地计算出总数public static int countFactZeros2(int num) { int count = 0; if (num < 0) { System.out.println("Factorial is not defined for negative numbers"); return 0; } while(num > 0){ count += num / 5; num /= 5; } return count;}public static int factorial(int num) {if (num == 1) {return 1;} else if (num > 1) {return num * factorial(num - 1);} else {return -1; // Error}}public static void main(String[] args) {for (int i = 1; i < 12; i++) {System.out.println(i + "! (or " + factorial(i) + ") has " + countFactZeros(i) + " zeros");System.out.println(i + "! (or " + factorial(i) + ") has " + countFactZeros2(i) + " zeros");}}}
- Moderate 阶层的结尾0个数 @CareerCup
- 结尾0的个数
- 结尾0的个数
- 结尾0的个数
- Moderate 查单词 @CareerCup
- Moderate 判断井字游戏的胜利 @CareerCup
- Moderate 不用比较符返回较大的数 @CareerCup
- 统计阶层最后0的个数
- 输出 结尾0的个数
- N!结尾0的个数
- oj 结尾0的个数
- Moderate 整数打印读法 @CareerCup
- Moderate rand5()产生rand7() @CareerCup
- 求n的阶层末尾0的个数
- 1000!的结尾0的个数。
- 以0为结尾的个数
- Moderate 找到数组中和为定值的整数对 @CareerCup
- Moderate Swap不用临时变量 @CareerCup
- Django auth注册
- Django auth登录
- Django auth登出
- Moderate 判断井字游戏的胜利 @CareerCup
- 数据结构CCArray
- Moderate 阶层的结尾0个数 @CareerCup
- hdu 4791 长沙现场赛A题
- STRUTS2 作用域、参数、响应对象
- UVA 699 - The Falling Leaves
- 嵌入式linux的网络编程(6)--多线程文件服务器
- 黑马程序员----Java概述
- 2013年12月2日 周一
- mongodb分布式集群架构
- 修改Ruby的config.yml文件