java递归的求和_Java之递归求和的两种简单方法(推荐)

Java之递归求和的两种简单方法(推荐)

方法一:

package com.smbea.demo;

public class Student {

private int sum = 0;

/**

* 递归求和

* @param num

*/

public void sum(int num) {

this.sum += num--;

if(0 < num){

sum(num);

} else {

System.out.println("sum = " + sum);

}

}

}

方法二:

package com.smbea.demo;

public class Test {

public static void main(String[] args) {

Teacher teacher = new Teacher();

teacher.sum();

}

public static int sum(int num){

if(1 == num){

return 1;

} else {

return num + sum(num - 1);

}

};

}

当然还有其它方法,如采用 for 循环、while 循环等,那就不属于递归了!这里就不做讨论了。

以上这篇Java之递归求和的两种简单方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2016-09-15

思路如下: 给定一个含有n个元素的整型数组a,求a中所有元素的和.问题的难点在于如何使用递归上.如果使用递归,则需要考虑如何进行递归执行的开始以及终止条件,首先如果数组元素个数为0,那么和为0.同时,如果数组元素个数为n,那么先求出前n-1个元素之和,再加上a[n-1]即可.此时可以完成递归功能.总之,递归就是在某个函数的执行过程中首先判断它的终止条件参数,终止条件参数满足终止条件则执行完毕,终止条件参数不满足终止条件则调用它自身执行某项运算,比如这里求和就是执行加法.凡是递归一定都有一个参数作

递归算法是一种直接或者间接地调用自身的算法.在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解. 问题1:一列数的规则如下: 1.1.2.3.5.8.13.21.34 ,求第30位数是多少?使用递归实现 复制代码 代码如下: public class FibonacciSequence {    public static void main(String[] args){        System.out.println(Fribonacci(9))

本文实例讲述了java实现递归文件列表的方法.分享给大家供大家参考.具体如下: FileListing.java如下: import java.util.*; import java.io.*; /** * Recursive file listing under a specified directory. * * @author javapractices.com * @author Alex Wong * @author anonymous user */ public final cla

一.递归函数,通俗的说就是函数本身自己调用自己... 如:n!=n(n-1)! 你定义函数f(n)=nf(n-1) 而f(n-1)又是这个定义的函数..这就是递归 二.为什么要用递归:递归的目的是简化程序设计,使程序易读 三.递归的弊端:虽然非递归函数效率高,但较难编程,可读性较差.递归函数的缺点是增加了系统开销,也就是说,每递归一次,栈内存就多占用一截 四.递归的条件:需有完成任务的语句,需满足递归的要求(减小而不是发散) 五.递归进阶: 1.用递归算n的阶乘: 分析:n!=n*(n-1)*(

本文讲述了Java递归运行的机制:递归的微观解.分享给大家供大家参考,具体如下: 前言:在java递归基础与递归的宏观语意和java链表的天然递归结构性质中我们分别通过数组以及链表对递归进行了应用,那时我们只是对递归进行了宏观理解--递归是将问题化为更小问题的子过程.这一节我们对在4.1节中递归在数组中的应用和4.2节中递归在链表中的应用进行微观解读: 一.关于4.1节中递归在数组中的应用 1) 我们先来看看4.1节中的代码实现,如下图: 为了更好的进行分析,我们将上述代码的最后一句进行拆分,拆

本文实例讲述了Java递归基础与递归的宏观语意.分享给大家供大家参考,具体如下: 1.什么是递归 本质上,将原来的问题,转化为更小的同一问题 2.例子分析 假设我们需要对数组进行求和操作(只是为了更好理解递归程序) 要求如下:求解从索引为0到n-1的数组元素和. 分析: 为了能求解从索引为0到n-1的数组元素和,可以分解为第0个数加上索引从1到n-1的数组元素和,如下: 此时求解索引从1到n-1的数组元素和的规模比求解从索引为0到n-1的数组元素和要少一个数以此类推,如下: ....... 最基

本文实例讲述了java递归法求字符串逆序的方法.分享给大家供大家参考.具体实现方法如下: public static String reverseString(String x) { if(x==null || x.length()<2) return x; return reverseString(x.substring(1,x.length()))+ x.charAt(0); } 希望本文所述对大家的java程序设计有所帮助.

Java递归列出目录下全部文件 /** * 列出指定目录的全部内容 * */ import java.io.*; class Recursion{ public static void main(String[] args) { String fileName="D:"+File.separator; File f=new File(fileName); printFile(f); } public static void printFile(File f){ if(f!=null){

废话不多说了,直接给大家贴代码,具体代码如下所示: //菜单树形结构 public JSONArray treeMenuList(JSONArray menuList, int parentId) { JSONArray childMenu = new JSONArray(); for (Object object : menuList) { JSONObject jsonMenu = JSONObject.fromObject(object); int menuId = jsonMenu.ge

719c8839a87d6c7f9337c65323f79adf.png

本文实例为大家分享了java递归输出树形菜单的具体代码,供大家参考,具体内容如下 首先我们要建立树节点的类: package com.tree; public class Node { private Integer id; private Integer parentId; private String name; private String link; public Integer getId() { return id; } public void setId(Integer id) {

568ceb9c13b6906fffb5800f59feef55.png

java递归读取目录下的所有文件(包含子目录下的所有文件)大概思路如下:通过file.listFiles()方法获取目录下的所有文件(包含子目录下的所有文件),得到files[]数组,然后遍历得到的所有文件,通过isFile(文件)和isDirectory(文件夹)方法来判断读取的是文件还是文件夹,如果得到的是文件夹,就递归调用test()方法,如果得到的是文件,就将其加入fileList中,最后测试的时候遍历fileList下的所有文件,来验证读取数据的准确性. package com.cha

斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci[1] )以兔子繁殖为例子而引入,故又称为"兔子数列",指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.--在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在现代物理.准晶体结构.化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起

这篇文章主要介绍了Java递归遍历文件目录代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在读取文件降序输出单词及其个数的基础上,将txt文件存入文件夹中,开始递归遍历文件目录,之后输出txt文件中的单词及其个数,仍然是降序排列. 代码如下 import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.util.Map

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值