Java练习21:递归方法求n!
递归:
(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!相关推荐
- Java题-利用递归方法求5!
题目:利用递归方法求5!. 程序分析:递归公式:fn=fn_1*4! 方法一: import java.util.Scanner; public class Ex22 {public static v ...
- java 全排列 可重复_java 用递归方法求n个数的无重复全排列
public class Permutation{ private int[] table; public Permutation(int n) // 构造方法 ...
- java5的递归算法_Java递归方法求5!的实现代码
题目:利用递归方法求5!. 程序分析:递归公式:fn=fn_1*4! 程序设计: import java.util.Scanner; public class Ex22 { public static ...
- 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 ...
- 有一分数序列: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 ...
- 分数序数之和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.首先弄清楚这组分数序列的规律:从 ...
- C语言经典例26-利用递归方法求阶乘
目录 1 题目 2 分析 3 实现 4 运行结果 1 题目 利用递归方法求5!5!5!. 2 分析 我们知道0和1的阶乘都是1,用递归计算阶乘时,要递减的方式递归,到0或1的时候返回递归.该递归程序从 ...
- 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 ...
- 题目:有一分数序列: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 ...
- 有一分数序列求前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.首先弄清楚这组分数序列的规律:从 ...
最新文章
- 学python最好的方式-最好的Python入门教程是?
- SharePoint初探-sharepoint 安装宝典(2)
- 使用Http协议访问网络--HttpClient
- 获取两个圆的重合部分的经纬度_(2)万向节的装配和动画仿真:重合同轴心装配约束很常用...
- Arthas实践--获取到Spring Context,然后为所欲为
- Android中利用OpenMax 编程的基本流程
- php比较两个变量的值_总结PHP不用第三个变量交换两个变量的值的几种方法
- iOS平台软件开发工具(一)-新建的工程使用CocoaPods工具集成第三方框架
- 手把手教你使用 VuePress 搭建个人博客
- frame页面跳转和信息提示页面
- 开发Shell脚本解决DOS安全Linux服务器生产案例
- Cesium应用篇:3控件(1)Clock
- 华硕新主板打开核心显卡开关以支持核心显卡不被屏蔽,然后就可以装核显驱动了
- 763-GMAX3809 1.1” 900万分辨率全局快门CMOS图像传感器
- 为什么10M、20M的宽带只有大约1、2M的下载速度——网速KB/s与Kbps(Kb/s)的区别
- 玩转AgileCDN(二)——运维小哥做报表,不再为时区换算而烦恼
- 【转】强烈推荐几个新鲜、好玩、另类的小游戏
- error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-h4wtvo23\opencv\
- vue里面使用echarts实现根据浏览器屏幕大小自适应
- [文心大模型创意项目]还在愁没有头像?属于你的个人头像来了!