Java中函数的递归调用-阿里云开发者社区

开发者社区> morixinguan> 正文

Java中函数的递归调用

简介: 说到递归,java中的递归和C语言中也是很相似的,在Java中,递归其实就是利用了栈的先进后出的机制来描述的。 public class HelloWorld { public static void main(String[] args){ // Scanner s = new Scanner(System.
+关注继续查看

说到递归,java中的递归和C语言中也是很相似的,在Java中,递归其实就是利用了栈的先进后出的机制来描述的。

public class HelloWorld {
	public static void main(String[] args){
	//	Scanner s = new Scanner(System.in);
	//	System.out.println("请输入一个数字");
	//	int num = s.nextInt();
		int c = 10 , d = 20 ;
		swep(c,d);
		System.out.println("c="+c+"d"+d);
		//java中使用内存时,直接把内存氛围堆,栈内存。
		//堆:通过垃圾回收器回收内存。
		//栈:用完自动释放,先进后出。
		//所以上面的c,d和swep里面的a,b没有任何关系
		//这点和C语言是类似的。
		
		//下面演示的是栈的先进原理--->Java函数方法的递归调用
		long ret = jiecheng1(5);
		System.out.println(ret);
		int fei = GetNdata(8) ;
		System.out.println(fei);
		
	}
	//Java中简单递归调用--->和C类似  利用栈的先进后出的原理
	public static long jiecheng1(int n){		
		if(n == 1)
			return 1 ; 
		return jiecheng1(n-1)*n;
	}
	//斐波那契数列 获取第N项的数
	public static int GetNdata(int n)
	{
		if(n == 1 || n == 2)
			return 1 ; 
		return GetNdata(n-1) + GetNdata(n-2) ;
	}
	public static long jiecheng(int n){
		int t= 1 ; 
		for(int i = 1 ; i < n ; i++){
			t *= i ;
		}
		return t ;
	}
	public static void swep(int a , int b){
		int t = a ; 
		a = b ; 
		b = t ;
	}
}


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
javascript函数的递归调用问题
functin(arg) { var arg2 = ....; arguments.callee(arg2); ... }
473 0
Java数组与函数的结合
import java.util.Scanner; public class HelloWorld { public static void main(String[] args){ // Scanner s = new Scanner(System.
697 0
Java:函数
import java.util.Scanner; public class HelloWorld { public static void main(String[] args){ Scanner s = new Scanner(System.
646 0
dedecms如何调用当前栏目的子栏目及子栏目文章
  前面ytkah谈到了 dedecms调用当前栏目的子栏目怎么操作,有的朋友会问如果再增加一个调用子栏目文章的需求,即调用当前栏目的子栏目及子栏目文章,这个有办法实现吗?这时就要涉及到另外两个标签的调用了,dede:channelartlist标签和dede:arclist标签 ...
847 0
多个类的DLL封装及调用
[cpp] view plaincopy     #define FaceLIBDLL      #include "stdafx.h"   #include "facedll.
962 0
dedecms利用addfields body在首页调用文章内容
  开源程序比较好的一点是可以进行二次开发,比如ytkah想要开发一个专家出诊表的功能模块,如下图所示,每天的专家都不一样,可以用到内容模型,但是相对比较复杂;我们可以把每天的坐诊情况写成一篇文章再通过调用文章内容的形式来实现(科室、上午下午、专家名称用table表格罗列出来,效果见mzeyes.com)。
724 0
java之路,函数调用与类的克隆
函数的调用,java传参是传值,基本数据传递数据的拷贝,引用传递引用的拷贝 class Test {  public static void change(int a, int b)  {   a = a + b;   b = a - b;   a = a - b...
579 0
带返回值的函数,闭包,沙箱,递归详解
函数进阶 函数的定义方式 函数声明 函数表达式 new Function 函数声明 function foo () { } 函数表达式 var foo = function () { } 函数声明与函数表达式的区别 函数声明必须有名字 函...
903 0
JavaScript立即调用的函数表达式
主要参考知乎上这个问题:javascript 匿名函数有哪几种执行方式  长天之云的回答。 ~(function() {//todo})();!(function() {//todo})(); 对于不太熟悉JavaScript的同学来讲,可能会有两个疑问: 1、!(function() {})();前面为什么要加~、!这些符号? 后面的()是执行一个函数,而(function() {})是一个执行表达式,返回一个匿名函数的引用。
607 0
+关注
morixinguan
ITGEGE在线教育嵌入式开发讲师。 CSDN博客专家、CSDN-Linux特邀编辑、CSDN博乐、CSDN学院讲师,目前从事嵌入式开发领域,从事与单片机,Linux,android相关的产品开发。
499
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载