1.阶乘
需求说明:
编写Java程序,输入一个数字,实现该数字阶乘的计算。一个数字的阶乘是所有小于及等于该数的正整数的积,自然数n的阶乘写作n! 。例如,5的阶乘等于12345,表示为5! = 120。

实现思路:
声明变量fac、i和num,用于存储阶乘运算结果、循环变量以及用户输入的数字。

通过System.out.println()接收用户输入的数字,并为变量num赋值。

根据阶乘计算规则,使用while循环结构实现计算。

使用System.out.println ()实现格式化输出运算结果。

循环条件:! <= num
循环操作:fac *= i;i++;

实现代码:

import java.util.Scanner;public class kkk {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int fac = 1;    //数字的阶乘运算结果int i = 1;      //循环变量int num;      //用户输入的数字//接收用户输入的数字System.out.println("请输入一个数字(1~10之间)");num = sc.nextInt();//计算该数字的阶乘while(i <= num) {fac *=i;i++;}System.out.println("数字"+num+"的阶乘:"+fac);}
}

2.递归

递归是设计和描述算法的一种有力的工具,由于它在复杂算法的描述中被经常采用,为此在进一步介绍其他算法设计方法之前先讨论它。

能采用递归描述的算法通常有这样的特征:为求解规模为N的问题,设法将它分解成规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解和综合方法,分解成规模更小的问题,并从这些更小问题的解构造出规模较大问题的解。特别地,当规模N=1时,能直接得解。

【问题】编写计算斐波那契(Fibonacci)数列的第n项函数fib(n)。

斐波那契数列为:0、1、1、2、3、……,即:

fib(0)=0;

fib(1)=1;

fib(n)=fib(n-1)+fib(n-2)(当n>1时)。

写成递归函数有:

int fib(intn){if(n==0)return0;if(n==1)return1;if(n>1) returnfib(n-1)+fib(n-2);
}

递归算法的执行过程分递推和回归两个阶段。在递推阶段,把较复杂的问题(规模为n)的求解推到比原问题简单一些的问题(规模小于n)的求解。例如上例中,求解fib(n),把它推到求解fib(n-1)和fib(n-2)。也就是说,为计算fib(n),必须先计算fib(n-1)和fib(n-2),而计算fib(n-1)和fib(n-2),又必须先计算fib(n-3)和fib(n-4)。依次类推,直至计算fib(1)和fib(0),分别能立即得到结果1和0。在递推阶段,必须要有终止递归的情况。例如在函数fib中,当n为1和0的情况。

在回归阶段,当获得最简单情况的解后,逐级返回,依次得到稍复杂问题的解,例如得到fib(1)和fib(0)后,返回得到fib(2)的结果,……,在得到了fib(n-1)和fib(n-2)的结果后,返回得到fib(n)的结果。

在编写递归函数时要注意,函数中的局部变量和参数知识局限于当前调用层,当递推进入“简单问题”层时,原来层次上的参数和局部变量便被隐蔽起来。在一系列“简单问题”层,它们各有自己的参数和局部变量。

由于递归引起一系列的函数调用,并且可能会有一系列的重复计算,递归算法的执行效率相对较低。当某个递归算法能较方便地转换成递推算法时,通常按递推算法编写程序。例如上例计算斐波那契数列的第n项的函数fib(n)应采用递推算法,即从斐波那契数列的前两项出发,逐次由前两项计算出下一项,直至计算出要求的第n项。

编写Java程序实现阶乘和递归相关推荐

  1. java求阶乘的程序_按要求编写Java程序(阶乘)

    (1)编写一个接口:InterfaceA,只含有一个方法int method(int n): (2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方 ...

  2. 多态部分作业 1.按要求编写Java程序:(1)编写一个接口:InterfaceA,只含有一个方法int method(int n);

    1.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n): (2)编写一个类:ClassA来实现接口InterfaceA,实现int m ...

  3. [基础题] 6.(*)按如下要求编写Java程序: (1)编写一个接口:OneToN,只含有一个方法int dispose(int n)

    package HomeWork_10;public class Test_06 { /*6.(*)按如下要求编写Java程序: (1)编写一个接口:OneToN,只含有一个方法int dispose ...

  4. 编写运行最简单的java程序——使用记事本编写java程序

    编写运行最简单的java程序--使用记事本编写java程序 第一个java程序--使用记事本编辑 经过上篇文章的java环境搭建成功的小伙伴们可以在自己的计算机上编写属于自己的java程序了yo~ 还 ...

  5. java shape 空间操作类_设计三个类:几何形状类(Shape)、圆类(Circle)、矩形类(.,请编写 Java程序,设计一个“形状rdquo...

    问题标题 设计三个类:几何形状类(Shape).圆类(Circle).矩形类(.,请编写 Java程序,设计一个"形状&rdquo 2019-5-10来自ip:17.175.174. ...

  6. 使用eclipse编写JAVA程序

    使用eclipse编写JAVA程序 一.Eclipse(集成开发环境IDE) **1.创建java项目 ** 2.创建程序包 3.编写JAVA源程序 4.运行程序 注:IDE自动完成了将.java源文 ...

  7. [基础题]8.(*)按如下要求编写Java程序:(1)定义一个交通工具收费接口Charge

    /*8.(*)按如下要求编写Java程序: (1)定义一个交通工具收费接口Charge,该接口包含两个元素:一个收取费用的方法double getFee(intdistance),distance代表 ...

  8. [基础题] 7.第二种(*)按如下要求编写Java程序:

    7.(*)按如下要求编写Java程序: (1)编写接口InterfaceA,接口中含有方法void printCapitalLetter(). (2)编写接口InterfaceB,接口中含有方法voi ...

  9. [基础题] 7.第一种(*)按如下要求编写Java程序:

    文章来源:https://zhidao.baidu.com/question/437484122307323564.html?from=commentSubmit#answers2777835233 ...

最新文章

  1. edge.js架起node.js和.net互操作桥梁
  2. java程序配置dns后超时_处理apache HTTP客户端保持活动连接断开,超时和DNS更改
  3. creo 3.0计算机配置,Creo 3.0 Parametric 配置选项文件使用说明
  4. Java基础之Hibernate
  5. 常考数据结构与算法:将字符串转为整数
  6. Linux学习笔记13
  7. 学习 shell —— 条件判断 if 的参数
  8. 再见!热血活力的深圳
  9. 百度关键词抓取工具_企业网站SEO营销工具大全,快来看看你的网站到底是什么水平!...
  10. 卸载不了mysql2008_卸载SQL2008遇到的问题及解决办法
  11. 免费的文本分析 文本挖掘软件工具(第一部分)
  12. k2p刷机丢失eeprom_刷机经验分享,K2P无线路由器救砖必备,无线和MAC恢复窍门
  13. 计算机键盘排列方式,电脑上的键盘布局是怎么形成的?
  14. 用c加加创建c语言项目,如何使用visual studio 2017创建C语言项目
  15. linux中man手册用法,Linux中man手册的使用
  16. 超炮主题曲用计算机谱,fripsideLevel5 Judgelight(《某科学的超电磁炮》动漫主题曲)歌词-查字典简谱网...
  17. C# Windows桌面应用 ---- 实例:文件读写
  18. 【笔记】Linux 文件写入失败,提示文件系统已满
  19. 音视频基础学习之【07.仿优酷界面的UI设计】
  20. 计算机类专业入门知识

热门文章

  1. 蓝月手游iOS客户端技术支持
  2. Linux编程入门(8)-文件系统初步
  3. 关于堆内存与栈内存的说明
  4. 接口隔离原则——举例说明Java设计模式中的接口隔离原则
  5. CocosCreator之节点悬浮效果组件
  6. 吃瓜教程task05 第6章 支持向量机
  7. 【计算机视觉】基于自组织背景减除的运动目标检测算法
  8. vim 系列文章 - 001 vim及neovim编译安装(文末有福利)
  9. 小玉家的电费《算法》java实现
  10. windows系统—CMD命令大全