阶乘N!的末尾有多少个0

川长思鸟来 2021-09-26 14:48 699阅读 0赞

思路:5*2=10,即每个5与2都能产生一个0,而在阶乘中,偶数很多,即2比5多
1-N中有N/5个数,每个数能贡献一个5,1-N有N/5^2个数,每个数又能贡献一个5等等

  1. import java.util.Scanner;
  2. public class 阶乘中0的个数 {
  3. /** * @param args */
  4. public static void main(String[] args) {
  5. // TODO Auto-generated method stub
  6. Scanner scanner = new Scanner(System.in);
  7. int N = scanner.nextInt();
  8. System.out.println(getZeroCounts(N));
  9. }
  10. /** * 思路是5*2=10,即每个5与2都能产生一个0,而在阶乘中,偶数很多,即2比5多 * 1-N中有N/5个数,每个数能贡献一个5,1-N有N/5^2个数,每个数又能贡献一个5等等 * 即count = N/5+N/5^2+...+N/5^i * @param n * @return */
  11. private static int getZeroCounts(int N) {
  12. // TODO Auto-generated method stub
  13. int i = 1;
  14. int count = 0;
  15. while(N/(Math.pow(5, i))>0){
  16. count+=N/(Math.pow(5, i));
  17. i++;
  18. }
  19. return count;
  20. }
  21. }

发表评论

表情:
评论列表 (有 0 条评论,699人围观)

还没有评论,来说两句吧...

相关阅读