递归:

(1)明确要干什么

例:求n!的阶乘

//计算n的阶乘
int f(int n){}

(2)找到递归的结束条件

要找出参数为什么时,递归结束,之后可以直接把结果返回

n=1时,1!=1

//计算n的阶乘(n>0)public static int f(int n) {if(n==1) {return 1;}

n=2时,2!=2*1

因此把n=1和n=2的情况合并

//计算n的阶乘(n>0)public static int f(int n) {if(n<=2) {return n;}

(3)缩小参数范围,自己调用自己

找到原函数的等价关系式:

f(n)=f(n-1)*n

从而使范围从n变成n-1

public class Test1 {public static void main(String[] args) {Scanner cin=new Scanner(System.in);System.out.println("请输入n:");int n=cin.nextInt();int x=f(n);System.out.println(x);}//计算n的阶乘(n>0)public static int f(int n) {if(n<=2) {return n;}return f(n-1)*n;}}

Java练习21:递归方法求n!相关推荐

  1. Java题-利用递归方法求5!

    题目:利用递归方法求5!. 程序分析:递归公式:fn=fn_1*4! 方法一: import java.util.Scanner; public class Ex22 {public static v ...

  2. java 全排列 可重复_java 用递归方法求n个数的无重复全排列

    public class Permutation{ private int[] table; public Permutation(int n)                    // 构造方法 ...

  3. java5的递归算法_Java递归方法求5!的实现代码

    题目:利用递归方法求5!. 程序分析:递归公式:fn=fn_1*4! 程序设计: import java.util.Scanner; public class Ex22 { public static ...

  4. ACMNO.12有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数。 输入 N 输出 数列前N项和 样例输入 10

    题目描述 有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数. 输入 N 输出 数列前N项和 样例输入 10 样例输出 16.48 ...

  5. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和

    有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13-求出这个数列的前20项之和. #include<stdio.h> int main() {int n, t;float ...

  6. 分数序数之和c语言,用c语言求解:有一分数序列2/1,3/2,5/3,8/5,13/8,21/13,…求这个数列的前20项之和....

    用c语言求解:有一分数序列2/1,3/2,5/3,8/5,13/8,21/13,-求这个数列的... 3个答案  提问时间: 2010-12-22  2个赞 回答:1.首先弄清楚这组分数序列的规律:从 ...

  7. C语言经典例26-利用递归方法求阶乘

    目录 1 题目 2 分析 3 实现 4 运行结果 1 题目 利用递归方法求5!5!5!. 2 分析 我们知道0和1的阶乘都是1,用递归计算阶乘时,要递减的方式递归,到0或1的时候返回递归.该递归程序从 ...

  8. C语言学习之有一个分数序列2/1、3/2、5/3、8/5、13/8、21/13,……求出这个数列的前20项之和。

    有一个分数序列2/1.3/2.5/3.8/5.13/8.21/13,--求出这个数列的前20项之和. #include <stdio.h> void main(){double a=1,b ...

  9. 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13... 求出这个数列的前20项之和。...

    题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13... 求出这个数列的前20项之和. 程序分析:请抓住分子与分母的变化规律. public class 第二十题求数列之和 {p ...

  10. 有一分数序列求前20项和答案c语言,用c语言求解:有一分数序列2/1,3/2,5/3,8/5,13/8,21/13,…求这个数列的前20项之和....

    用c语言求解:有一分数序列2/1,3/2,5/3,8/5,13/8,21/13,-求这个数列的... 3个答案  提问时间: 2010-12-22  2个赞 回答:1.首先弄清楚这组分数序列的规律:从 ...

最新文章

  1. 学python最好的方式-最好的Python入门教程是?
  2. SharePoint初探-sharepoint 安装宝典(2)
  3. 使用Http协议访问网络--HttpClient
  4. 获取两个圆的重合部分的经纬度_(2)万向节的装配和动画仿真:重合同轴心装配约束很常用...
  5. Arthas实践--获取到Spring Context,然后为所欲为
  6. Android中利用OpenMax 编程的基本流程
  7. php比较两个变量的值_总结PHP不用第三个变量交换两个变量的值的几种方法
  8. iOS平台软件开发工具(一)-新建的工程使用CocoaPods工具集成第三方框架
  9. 手把手教你使用 VuePress 搭建个人博客
  10. frame页面跳转和信息提示页面
  11. 开发Shell脚本解决DOS安全Linux服务器生产案例
  12. Cesium应用篇:3控件(1)Clock
  13. 华硕新主板打开核心显卡开关以支持核心显卡不被屏蔽,然后就可以装核显驱动了
  14. 763-GMAX3809 1.1” 900万分辨率全局快门CMOS图像传感器
  15. 为什么10M、20M的宽带只有大约1、2M的下载速度——网速KB/s与Kbps(Kb/s)的区别
  16. 玩转AgileCDN(二)——运维小哥做报表,不再为时区换算而烦恼
  17. 【转】强烈推荐几个新鲜、好玩、另类的小游戏
  18. error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-h4wtvo23\opencv\
  19. vue里面使用echarts实现根据浏览器屏幕大小自适应
  20. [文心大模型创意项目]还在愁没有头像?属于你的个人头像来了!

热门文章

  1. GetRows的用法详解
  2. 锂电池荷电状态预测方法
  3. 基于Tensorflow针对cifar数据集运用卷积神经网络解决100类图片的分类问题。
  4. java 普通方法_Java普通方法与static方法的多态
  5. 100句话,是否会触动你?
  6. 使用layer 实现点击 显示大图
  7. 浅谈Netty中ServerBootstrap服务端源码(含bind全流程)
  8. c 语言程序设计(清华大学郑莉),清华大学 C++程序设计语言 45 郑莉 视频教程
  9. C++11常用新特性
  10. OpenCasCade拓扑几何(拉伸,扫略,旋转)