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之递归求和的两种简单方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
java实现递归文件列表的方法
本文实例讲述了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
-
java 递归深入理解
一.递归函数,通俗的说就是函数本身自己调用自己... 如:n!=n(n-1)! 你定义函数f(n)=nf(n-1) 而f(n-1)又是这个定义的函数..这就是递归 二.为什么要用递归:递归的目的是简化程序设计,使程序易读 三.递归的弊端:虽然非递归函数效率高,但较难编程,可读性较差.递归函数的缺点是增加了系统开销,也就是说,每递归一次,栈内存就多占用一截 四.递归的条件:需有完成任务的语句,需满足递归的要求(减小而不是发散) 五.递归进阶: 1.用递归算n的阶乘: 分析:n!=n*(n-1)*(
-
Java递归算法的使用分析
递归算法是一种直接或者间接地调用自身的算法.在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解. 问题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))
-
使用递归实现数组求和示例分享
思路如下: 给定一个含有n个元素的整型数组a,求a中所有元素的和.问题的难点在于如何使用递归上.如果使用递归,则需要考虑如何进行递归执行的开始以及终止条件,首先如果数组元素个数为0,那么和为0.同时,如果数组元素个数为n,那么先求出前n-1个元素之和,再加上a[n-1]即可.此时可以完成递归功能.总之,递归就是在某个函数的执行过程中首先判断它的终止条件参数,终止条件参数满足终止条件则执行完毕,终止条件参数不满足终止条件则调用它自身执行某项运算,比如这里求和就是执行加法.凡是递归一定都有一个参数作
-
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
-
Java基于递归和循环两种方式实现未知维度集合的笛卡尔积算法示例
本文实例讲述了Java基于递归和循环两种方式实现未知维度集合的笛卡尔积.分享给大家供大家参考,具体如下: 什么是笛卡尔积? 在数学中,两个集合X和Y的笛卡儿积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员. 假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)}. 如何用程序算法实现笛卡尔积? 如果编程前已知集合的数量
-
java 中ArrayList迭代的两种实现方法
java 中ArrayList迭代的两种实现方法 Iterator与for语句的结合来实现,代码很简单,大家参考下. 实现代码: package cn.us; import java.util.ArrayList; import java.util.Iterator; //ArrayList迭代的两种方法 //Iterator与for语句的结合 public class Test1 { public static void main(String[] args) { ArrayList arra
-
java.util.NoSuchElementException原因及两种解决方法
java输入流报错: Exception in thread "main" java.util.NoSuchElementException at java.base/java.util.Scanner.throwFor(Unknown Source) at java.base/java.util.Scanner.next(Unknown Source) at java.base/java.util.Scanner.nextInt(Unknown Source)
-
在C++中把字符串转换为整数的两种简单方法
目录 C++中的数据类型 如何在C++中声明和初始化 int s 如何在C++中声明和初始化 string s 如何使用 stoi() 函数将字符串转换为int 如何使用stringstream 类将一个字符串转换为一个int 总结 当你用C++编码时,经常会有这样的时候,你会想把一种数据类型转换为另一种. 在这篇文章中,你将看到两种最流行的方法来学习如何在C++中把字符串转换为整数. 让我们开始吧! C++中的数据类型 C++编程语言有一些内置的数据类型. int,用于整数(整数)(例如10,
-
Java中获取类路径classpath的简单方法(推荐)
如下所示: <SPAN style="FONT-SIZE: 18px"> System.out.println("++++++++++++++++++++++++"); String path = System.getProperty("java.class.path"); String path2 = FreeMarkerWriter.class.getProtectionDomain().getCodeSource().getLo
-
aspx后台传递Json到前台的两种接收方法推荐
第一种:前台接收 dataType: "json", success: function (data) { var varReceiver = data; } <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="echart2.aspx.cs" Inherits="RTC.echart2" %> <!DOCTYPE html&
-
js数组的五种迭代方法及两种归并方法(推荐)
js数组的五种迭代方法及两种归并方法(推荐) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht
-
计时器的time_t和clock_t 的两种实现方法(推荐)
想给自己初步完成的相空间搜索算法计算一下运行时间,于是尝试了如下使用 time_t 类型的方式 #include <stdlib.h> #include <iostream> #include <time.h> #include "StateFunctions.h" using namespace std; int main(int argc, char** argv) { time_t start, finish; time(&start)
-
Java反射的两种使用方法(推荐)
1.创建User.java package com.tao.test; public class User { private String name; private int id; public User() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getId() { return id; } public vo
随机推荐
- PHP date函数参数详解
- jQuery实现base64前台加密解密功能详解
- Webpack 服务器端代码打包的示例代码
- IOS使用UICollectionView实现无限轮播效果
- php表单习惯用的正则表达式
- java微信开发之上传下载多媒体文件
- sql server中批量插入与更新两种解决方案分享(存储过程)
- ThinkPHP框架表单验证操作方法
- Android动画之3D翻转效果实现函数分析
- iframe 上下滚动条如何默认在下方实现原理
- 使用pt-kill根据一定的规则来kill连接的方法
- Overflow OPREA
- javascript 移动鼠标得到单元格所在table表中的rowIndex位置[兼容ie,firefox] 原创
- 批量处理JDBC语句提高处理速度
- Javascript学习笔记一 之 数据类型
- C++中函数的用法小结
- C#中DataTable排序、检索、合并等操作实例
- bootstrap treeview 扩展addNode方法动态添加子节点的方法
- spring cloud中启动Eureka Server的方法
- Spring Boot/VUE中路由传递参数的实现代码