问题描述:问题描述:给定一个整数 N,那么 N 的阶乘 N! 末尾有多少个 0?例如:N = 10,则 N!= 3628800,那么 N! 的末尾有两个0。
方案1:求阶乘,一直除以10 直到余数不为0 计算0的个数
方案2:10的最小公约数时候2和5得到的,2的倍数比5的多 多以求 阶乘的数据中可以获取多少个5 就得到可以获取多少个0了
int f(n){
return n == 0 ? 0 : n / 5 + f(n / 5);
}
问题描述:问题描述:给定一个整数 N,那么 N 的阶乘 N! 末尾有多少个 0?例如:N = 10,则 N!= 3628800,那么 N! 的末尾有两个0。
方案1:求阶乘,一直除以10 直到余数不为0 计算0的个数
方案2:10的最小公约数时候2和5得到的,2的倍数比5的多 多以求 阶乘的数据中可以获取多少个5 就得到可以获取多少个0了
int f(n){
return n == 0 ? 0 : n / 5 + f(n / 5);
}