精华内容
下载资源
问答
  • 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100...10001000 / 5 = 2005倍数 1个0这些数和任意偶数相乘,结尾就会产生0 5*5 5*5*2 5*5*3 5*5*4 5*5*5 5*5*6 5*5*7 5*5*8 5*5*9 5*5*10...5*5*40...

    分析:

    5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100...1000    1000 / 5 = 200    5的倍数        1个0  这些数和任意的偶数相乘,结尾就会产生0
    5*5 5*5*2 5*5*3 5*5*4 5*5*5 5*5*6 5*5*7 5*5*8 5*5*9 5*5*10...5*5*40       200 / 5 = 40      25的倍数      2个0  第一次将会产生一个零的都统计了,但还有些数会产生两个0,去掉1个0还剩1个0.
    5*5*5 5*5*5*2 5*5*5*3 5*5*5*4 5*5*5*5 5*5*5*6 5*5*5*7 5*5*5*8                 40 / 5 = 8        125的倍数    3个0  去掉2个0还剩1个0.
    5*5*5*5                                                                                                            8 / 5 = 1        625的倍数    4个0  去掉3个0还剩1个0.
    --------------------- 
    作者:from_heat 
    来源:CSDN 
    原文:https://blog.csdn.net/from_heat/article/details/84995275 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    package com.heima.test;
    
    public class Test7 {
    	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);
    		}
    	}
    }
    

    不用递归方法:

    package com.heima.test;
    
    import java.math.BigInteger;
    
    public class Test6 {
    
    	/**
    	 * @param args
    	 *  需求:求出1000的阶乘所有零和尾部零的个数,不用递归做
    	 */
    	public static void main(String[] args) {
    		/*int result = 1;
    		for(int i = 1; i <= 1000; i++) {
    			result = result * i;
    		}
    		
    		System.out.println(result);		//因为1000的阶乘远远超出了int的取值范围
    		*/
    		//demo1();
    		demo2();
    	}
    
    	public static void demo2() {		//获取1000的阶乘尾部有多少个零
    		BigInteger bi1 = new BigInteger("1");
    		for(int i = 1; i <= 1000; i++) {
    			BigInteger bi2 = new BigInteger(i+"");
    			bi1 = bi1.multiply(bi2);	//将bi1与bi2相乘的结果赋值给bi1
    		}
    		String str = bi1.toString();	//获取字符串表现形式
    		StringBuilder sb = new StringBuilder(str);
    		str = sb.reverse().toString();	//链式编程
    		
    		int count = 0;					//定义计数器
    		for(int i = 0; i < str.length(); i++) {
    			if('0' != str.charAt(i)) {
    				break;
    			}else {
    				count++;
    			}
    		}
    		
    		System.out.println(count);
    	}
    
    	public static void demo1() {		//求1000的阶乘中所有的零
    		BigInteger bi1 = new BigInteger("1");
    		for(int i = 1; i <= 1000; i++) {
    			BigInteger bi2 = new BigInteger(i+"");
    			bi1 = bi1.multiply(bi2);	//将bi1与bi2相乘的结果赋值给bi1
    		}
    		String str = bi1.toString();	//获取字符串表现形式
    		int count = 0;
    		for(int i = 0; i < str.length(); i++) {
    			if('0' == str.charAt(i)) {	//如果字符串中出现了0字符
    				count++;				//计数器加1
    			}
    		}
    		System.out.println(count);
    	}
    
    }
    

     

    展开全文
  • 1、递归求 N 的阶乘 2、递归求 1 + 2 + 3 + … + 10 3、按顺序打印一个数字的每一位(例如 1234 打印 1 2 3 4) (递归) 4、写一个递归方法,输入一个非负整数,返回组成它的数字之和. 5、递归求斐波那契数列的第 N...

    1、递归求 N 的阶乘

    package gyy;
    import java.util.Scanner;
    public class yinger{
     public static void main(String[] args) {
      Scanner sc=new Scanner(System.in);
      int N=sc.nextInt();
      System.out.print(N+"!="+Factorial(N));
      sc.close();
     }
     public static int Factorial(int n) {
      if(n==1) {
       return 1;
      }else {
       return n*Factorial(n-1);
      }
     }
    }

    运行结果:

    5
    5!=120

    2、递归求 1 + 2 + 3 + … + 10

    package gyy;
    import java.util.Scanner;
    public class yinger{
     public static void main(String[] args) {
      Scanner sc=new Scanner(System.in);
      int N=sc.nextInt();
      System.out.print(Factorial(N));
      sc.close();
     }
     public static int Factorial(int n) {
      if(n>1){
       return n+Factorial(n-1);
      }else {
       return n;
      }
     }
    } 

    y运行结果:

    10
    55

    3、按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4) (递归)

    package gyy;
    import java.util.Scanner;
    public class yinger{
     public static void main(String[] agrs) {
      System.out.print("请输入一个数字:");
      Scanner s=new Scanner(System.in);
      int integer=s.nextInt();
      //调用拆分一个整数的方法
      splitInteger(integer);
      s.close();
     }
     public static int splitInteger(int integer) {
      if(integer>9) {
      splitInteger(integer/10);
      }
      System.out.print(integer%10+" ");
      return 0;
     }
    }

    运行结果:

    请输入一个数字:1234
    1 2 3 4 
    展开全文
  • 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100...1000 1000 / 5 = 200 5倍数 1个0 这些数和任意偶数相乘,结尾就会产生0 5*5 5*5*2 5*5*3 5*5*4 5*5*5 5*5*6 5*5*7 5*5*8 5*5*9 5*5*10...5*5...

    分析:

    5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100...1000    1000 / 5 = 200    5的倍数        1个0  这些数和任意的偶数相乘,结尾就会产生0
    5*5 5*5*2 5*5*3 5*5*4 5*5*5 5*5*6 5*5*7 5*5*8 5*5*9 5*5*10...5*5*40       200 / 5 = 40      25的倍数      2个0  第一次将会产生一个零的都统计了,但还有些数会产生两个0,去掉1个0还剩1个0.
    5*5*5 5*5*5*2 5*5*5*3 5*5*5*4 5*5*5*5 5*5*5*6 5*5*5*7 5*5*5*8                 40 / 5 = 8        125的倍数    3个0  去掉2个0还剩1个0.
    5*5*5*5                                                                                                            8 / 5 = 1        625的倍数    4个0  去掉3个0还剩1个0.

    public class Test7 {
    	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);
    		}
    	}
    }
    

     

    展开全文
  • 递归求阶乘Java

    2019-03-13 15:38:19
    递归设计经验 -找重复 -找变化 -找出口 public class Main{ public static void main(String[] args){ int res=f(10); System.out.println(res);//3628800 } //找变化:变化量应该作为参数 ...

    递归设计经验

    1. -找重复

    2. -找变化

    3. -找出口

    public class Main{
        public static void main(String[] args){
            int res=f(10);
            System.out.println(res);//3628800
        }
        //找变化:变化的量应该作为参数
        public static int f(int n){
            //找出口
            if(n==1)
                return 1;
            //找重复:n*(n-1),求n-1的阶乘是原问题的重复(规模更小)-子问题
            return n*f(n-1);
        }
    }

     

    展开全文
  • 递归思想求阶乘问题

    2020-09-24 11:38:24
    java递归 A.递归思想: 1.递归的基本思想就是“自己调用自己”,或直接或间接,我们也可以...//递归思想求阶乘问题 package jh_08_diGui; public class jh_10_diGui { public static void main(String[] args) { int f
  • 一行代码实现java递归算法的阶乘递归算法10! 用递归算法10! 10! 就是求10的?阶乘的表达式,如何用递归算法来计算呢? 10x9x8x7x6x5x4x3x2x1=? 所谓递归算法,就是自己调用自己的算法;但是自己调用自己...
  • //代码示例1 按顺序打印一个数字每一位(例如 1234 打印 1 2 3 4) public class Test1_printNum { public static void main(String[] args){ System.out.println(“请输入数字:”); Scanner sc=ne...
  • /* ...03.*All rights reserved. 04.*文件名称:main.cpp 05.*作 者:李钊 06.*完成日期:2016年3月19日 ...09.*问题描述:输入一个N求出从1到N奇数阶乘 10. 11. 输入描述:n 12.*输出描述:阶乘结果 13.*/ #
  • 描述用递归的方法求出n!值。 输入 一个正整数n,保证n不超过10。 输出 n!值。请注意行尾输出换行。 样例输入 5 样例输出 120 #include<stdio.h> int jieC(int n); int main(void) { int n; scanf("%d...
  • /* ...03.*All rights reserved. 04.*文件名称:main.cpp 05.*作 者:李钊 06.*完成日期:2016年3月19日 ...09.*问题描述:系统随机一个0-100010. 11. 输入描述:你猜测数字 12.*输出描述:到猜对一共猜了几次
  • 1、递归求 N 的阶乘 解析:N!=N*(N-1)!; 求N的阶乘,首先求(N-1)的阶乘,再求(N-2)的阶乘,以此类推,直到找到递归出口N<=1. import java.util.Scanner; public class Test { public static void main(String[]...
  • 问题及代码: /* *Copyringht (c) 2014,烟台大学计算机学院 *All right reserved.... *文件名称: test.cpp ...*问题描述: 输入一个正整数,求出的阶乘 *输入描述: *程序输出: */ #include
  • 利用递归算法求10

    2019-10-02 18:25:50
    递归算法就是在调用自己,循环调用。是一种解决问题常用算法。比较简单易于分析。 递归有两个基本要素:边界条件,即确定递归何时停止运行,也叫递归出口,另一个就是递归...例如:使用递归求阶乘10!。 publ...
  • void niXu(int n){ if (n == 0) { return; } //留一个数 int number = n % 10;//保存留下数 //报数 printf("%d",number); //找下一个人 niXu(n / 10);...//求阶乘,5! int fac(int n){ //出口
  • Problem E: 深入浅学算法019-n的阶乘 Time Limit: 1 SecMemory Limit: 64 MBSubmit: 5077Solved: 3148 Description 阶乘,采用递归的方法,你会写吗? Input 多组测试数据,首先输入整数T表示组数 然后...
  • 所以先求出阶乘 然后每一个阶乘求和 / public static int build(int x) { if(x==1){ return 1; }else return xbuild(x-1); } public static void main(String[] args) { int sum=0; for (int ..
  • 10 递归

    2019-10-07 16:34:15
    文章目录递归递归解决问题思想及图解递归求阶乘的代码实现及内存图解不死神兔问题 递归 递归概述: 方法定义中调用方法本身现象 递归注意事项 要有出口,否则就是死递归 次数不能太多,否则就内存溢出 package ...
  • 递归算法

    2016-06-15 01:00:07
    递归算法:调用方法本身,必须定义一个程序结束条件,即递归出口 递归求阶乘: : 递归求1到10的和:
  • Java中递归的演示

    2020-11-19 13:48:34
    学习时间: 2020-11-18 学习内容: 递归 概述: 方法定义中调用方法本身的现象 注意事项 1.要有出口,否则就是死递归 ...用递归的方法求出5的阶乘 public class MyDemo10 { public static void main(S
  • 递归函数简单说明

    2020-09-28 14:51:04
    递归函数 如果一个函数在内部调用自身本身,这个函数就是递归函数。使用递归函数的条件: 1,必须留出口 2,自己调用自己 #练习,使用递归函数向控制台打印3,...练习2:使用递归求1到10的阶乘 def jiecheng(num):
  • 递归

    2017-08-21 22:16:28
    递归 递归是方法本身调用方法的一种现象 Math类中有一个方法max()最大值 1.方法嵌套不属于递归 Math.max(Math.max(10,20),30):方法嵌套 2.方法递归的条件: ...3.递归可以用在构造方法上... * 5的阶乘 * 5!=5*
  • 算法四--阶乘的

    2020-05-23 22:00:25
    方法递归求n!,求阶乘的和时,可以使用for循环(但是在牛客上使用for循环,提示堆栈溢出),方法二,使用列表的形式保存每个数据的阶乘,然后再求和 代码中会将两个方法全部写,以供参考,由于能力有限,堆栈...
  • js递归的应用

    2019-12-17 18:53:21
    n的阶乘 已知1的阶乘为1。 步骤分析:递归 - 找规律、找出口,出口找到,依次往前推即可。 // 阶乘的函数 function mul(n) { if(n === 1) { return 1 } return n * mul(n-1) } var res = mul(10) ...
  • 系列文章目录 文章目录系列文章目录前言一、阶乘二、第一个人10,第2个比第1个人大2岁,以此类推,请用递归方式计算第8个人多大?...如上调用求10的阶乘 package com.atguigu.test02; import org.junit.Te
  • JS递归

    2020-05-23 22:25:52
      以一个例子为例,给定正整数的阶乘,这个例子就可以使用递归来解决。使用递归解决这个阶乘问题可以分为三步: 明确递归函数的作用,即一个给定正整数的阶乘。 找函数退出的条件,阶乘递归当中,当num小于...
  • 问题及代码: /* *Copyringht (c) 2014,烟台大学计算机学院 *All right reserved. *文件名称: test.cpp ...*问题描述: 输入一个奇数,求出的阶乘 *输入描述: *程序输出: */ #include using namespace

空空如也

空空如也

1 2 3 4 5
收藏数 86
精华内容 34
关键字:

递归求出10的阶乘