目录

1.求阶乘和

2.求和的重载

3.青蛙跳台阶问题

4.递归求解汉诺塔问题

5.递归求斐波那契数列的第 N 项

6.返回的数字之和


1.求阶乘和

求1!+2!+3!+4!+........+n!的和

import java.util.Scanner;public class practice {public static void main(String[] args) {//求n个阶乘和//求1!+2!+3!+4!+........+n!的和System.out.println("Please Enter A Num : ");Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();long sum = 0;for (int i = 1; i <= n; i++) {sum+=factorial(i); //调用方法}System.out.print("1~"+n+"的阶乘和为:"+sum);}public static long factorial(int n){  //阶乘方法long num = 1;for (int i = 1; i <= n; i++) {num*=i;}return num;}
}

2.求和的重载

在同一个类中,分别定义求两个整数的方法 和 三个小数之和的方法。 并执行代码,求出结果。

import java.util.Scanner;public class practice {public static void main(String[] args) {//求和的重载//在同一个类中,分别定义求两个整数之和的方法和三个小数之和的方法。Scanner scanner = new Scanner(System.in);System.out.print("Please Enter The First Integer:");long a1 = scanner.nextLong();System.out.print("Please Enter The Second Integer:");long a2 = scanner.nextLong();System.out.print("Please Enter The First Decimal:");double b1 = scanner.nextDouble();System.out.print("Please Enter The Second Decimal:");double b2 = scanner.nextDouble();System.out.print("Please Enter The Third Decimal:");double b3 = scanner.nextDouble();System.out.print("Integer Sum: "+sum(a1,a2));System.out.println();System.out.print("Decimal Sum: "+sum(b1,b2,b3));}public static long sum(long a1,long a2){return a1+a2;}//方法重载public static double sum(double b1,double b2,double b3){return b1+b2+b3;}
}

3.青蛙跳台阶问题

(从三开始就是斐波那契数列,即F(3)=F(2)+F(1),则采用递归思想)

青蛙一次可以跳一个台阶,或者两个台阶,求解青蛙一次跳num阶台阶总共多少种方法。

import java.util.Scanner;public class practice {public static void main(String[] args) {//青蛙跳台阶问题Scanner scanner = new Scanner(System.in);System.out.print("Please Enter A Num:");int num = scanner.nextInt();int n = JumpFloor(num);System.out.print("青蛙跳"+num+"阶台阶总共有"+n+"种方法");}public static int JumpFloor(int n){if (n<=0){return -1;}if (n==1){return 1;}if (n==2){return 2;}else{return JumpFloor(n-1)+JumpFloor(n-2);//递归思想}}
}

4.递归求解汉诺塔问题


import java.util.Scanner;public class practice {public static void main(String[] args) {//汉诺塔Scanner scanner = new Scanner(System.in);System.out.print("Please Enter A Num:");int nDisks = scanner.nextInt();char A = 'A';char B = 'B';char C = 'C';hanoiTower(nDisks,A,B,C);}/*nDisks盘子编号A,B,C为三个塔编号*/public static void hanoiTower(int nDisks,char A,char B,char C){if (nDisks==1){// 一步到位 A -> C// 移动盘子步骤move(nDisks,A,C);return;}// 此时nDisks > 1// 核心步骤1.先将n - 1个盘子从A -> B ,C作为辅助hanoiTower(nDisks-1,A,C,B);// 核心步骤2.此时最大的盘子在A上,C为空,n - 1都在B上move(nDisks,A,C);// 核心步骤3.只需将n - 1个盘子再从B -> C,A作为辅助hanoiTower(nDisks-1,B,A,C);}// 将编号为n的盘子,从souce -> distpublic static void move(int nDisks, char sourceTower, char distTower) {System.out.println("编号为"+nDisks+"的盘子从"+sourceTower+"->"+distTower);}
}

5.递归求斐波那契数列的第 N 项

(F(3)=F(2)+F(1))

如:1  1  2  3  5  8  13  ……

import java.util.Scanner;public class practice {public static void main(String[] args) {//求斐波那契的第n项Scanner scanner = new Scanner(System.in);System.out.print("Please enter Fibonacci item n:");int n = scanner.nextInt();System.out.println(fiBo(n));}public static int fiBo(int n){if (n>2){return fiBo(n-1)+fiBo(n-2);}else{return 1;}}
}

6.返回的数字之和

写一个递归方法,输入一个非负整数,返回组成它的数字之和。

import java.util.Scanner;public class practice {public static void main(String[] args) {//返回的数字之和Scanner scanner = new Scanner(System.in);System.out.print("Please Enter A Nonnegative Integer:");int num = scanner.nextInt(); //num表示输入的非负整数int n = fDigitSum(num); //将输入的num分解各位求和System.out.println("组成"+num+"的数字之和为"+n);}public static int fDigitSum(int n){if (n<10){return n;}else{return n % 10 + fDigitSum(n/10); //递归思想,先取其个位数,将其余的交给fDigitSum函数}}
}


本小节完~

最适合freshman的Java习题集(三)相关推荐

  1. 最适合freshman的Java习题集(四)数组

    目录 1.求数组的平均值 2.数组所有元素之和 3.改变原有数组元素的值 4.打印数组 5.创建的数组,并且赋初始值 6.存在连续三个奇数的数组 7.多数元素 8.只出现一次的数字 9.两数之和 10 ...

  2. 最适合freshman的Java习题集(一)

    目录 1.猜数字 2.判断闰年 3.输出 1000 - 2000 之间所有的闰年 4.编写一个程序计算数字1-100中出现9的个数. 5.判断素数 6.输出100以内所有素数 7.求出0-999之间的 ...

  3. Java的三种代理模式简述

    本文着重讲述三种代理模式在java代码中如何写出,为保证文章的针对性,暂且不讨论底层实现原理,具体的原理将在下一篇博文中讲述. 代理模式是什么 代理模式是一种设计模式,简单说即是在不改变源码的情况下, ...

  4. 有效期判断功能 java_有效的Java第三版有哪些新功能?

    有效期判断功能 java 自从听说即将出版的有效Java 第三版以来,我一直想知道其中有什么新内容. 我假设将涵盖自Java 6以来引入Java的功能,的确如此. 但是,第三版Java开发人员经典版也 ...

  5. 有效的Java第三版有哪些新功能?

    自从听说即将出版的有效Java 第三版以来,我一直想知道其中有什么新内容. 我假设将涵盖自Java 6以来引入Java的功能,的确如此. 但是,第三版Java开发人员经典版也有一些其他更改. 在本文中 ...

  6. Effective Java第三版有哪些新功能?

    自从听说即将出版的有效Java 第三版以来,我一直想知道其中有什么新内容. 我假设将涵盖自Java 6以来引入Java的功能,的确如此. 但是,第三版Java开发人员经典版也有一些其他更改. 在本文中 ...

  7. 网易严选Java开发三面面经:java技术编程培训班

    前言 Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架.提供了完善的认证机制和方法级的授权功能.是一款非常优秀的权限管理框架.它的核心是一组过滤器链,不同的功能经由不同 ...

  8. java个十百千万位余数_1 Java第三课[流程控制]

    1 Java第三课[流程控制] 1.1 回顾: 1. 标识符的命名:标识符通常意义上是指 类名,包名,方法名,属性名,普通变量等等. 2. 类命名:每个单词的首字母大写; 3. 变量命名规则:字母数字 ...

  9. Java的三种程序基本结构

    Java三种程序基本结构 今天我们了解下Java的三种程序基本结构 理解什么是基本结构 主要分为 :1. 顺序结构 2. 选择结构 3. 循环结构 一丶顺序结构 顺序结构就是程序从上到下一行一行的执行 ...

最新文章

  1. 程序员都痛恨开会?多开 1 个会,我少写 1000 行代码......
  2. SQL Server:APPLY表运算符
  3. NIFI从mysql导入Hbase
  4. python编程入门第九讲,第九讲作业---函数
  5. Android 上下文菜单(Context Menu)
  6. python有趣的案例_Python有趣的小案例
  7. python类的使用的生物学应用_当AI遇到生物-深度学习在生物研究中的应用案例列表...
  8. 【数字信号调制】基于matlab二进制数字振幅调制与解调(2ASK)【含Matlab源码 996期】
  9. Vue学习笔记(尚硅谷天禹老师)
  10. step 7在win10上安装教程及安装包
  11. Matplotlib库学习笔记(4) pyplot的文本显示以及Latex的使用
  12. 爬虫基础知识+Scrapy框架
  13. 基于情感词典的文本情感分类
  14. 信诺计算机怎么算一次函数,excel用一次函数进行计算的方法步骤
  15. VUE-table表格操作列表适配屏幕缩小固定右侧fixed
  16. 金融IT 行业常见术语
  17. 求生之路2服务器消息,求生之路2服务器公告设置
  18. html 气泡样式,jQuery 插件实现随机自由弹跳气泡样式
  19. Xshell 7 提示 “要继续使用此程序,您必须应用最新的更新或使用新版本”
  20. 计算机网络——各种计算

热门文章

  1. 读 伯罗奔尼撒战争史
  2. 电商服务器性能测试,如何测试分析电商网站的性能瓶颈(一)
  3. Blender 2.9
  4. c语言60题,C语言复习60题
  5. 第二次作业助教博客 —— 撰写第三周课程总结及实验报告(一)
  6. 深入理解LightGBM
  7. 为何用户体验无法被设计,如何为用户体验设计
  8. crh寄存器_牛人的STM32学习笔记(寄存器版本).doc
  9. Shell- 获取ESXI主机虚拟交换机中MAC表
  10. 闭关修炼(六)各种锁