A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*
*需求:求出1000的阶乘零的个数,用递归做
*
*分析:因为1到4的的阶乘没有阶乘,而到5的阶乘有1个零
*10 15  20 25 30 ......总而言之,出现5、0结尾就会有会有个0,5乘以一个偶数会有0
*5 10 15 20 25 30 35 40 45 ...1000                 有1000/5 =200 个这样的数;
*5*5*1   5*5*2 ...  以上某些数分解5的因数  ,以上每隔5个多一个5,  200/5=40个
*5*5*5*1    ...如此循环                                                                                  40/5 = 8
*                                                                                                8/5=1
*                          总共200+40+8+1=249个                     
* */
import java.io.*;
public class Test6 {
        public static void main(String[] args) {
                System.out.println(fun(1000));
        }

        public static int fun(int num) {
                if(num > 0 && num < 5) {
                        return 0;
                }else {
                        return num / 5 + fun(num / 5);
                }
        }
}


3 个回复

正序浏览
感谢楼主分享,学习了
回复 使用道具 举报
Zzh94520 发表于 2016-9-12 23:21
水一发。。。。。。

我感觉我回一帖之后就没黑马币了
回复 使用道具 举报
水一发。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马