说到递归,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 ;
	}
}

Java中函数的递归调用的更多相关文章

  1. oracle数据库中函数的递归调用

    如有下面的表结构AAAA,用一个字段prev_id表示记录的先后顺序,要对其排序,需要用的递归函数 ID PREV_ID CONT 99   a 23 54 d 21 23 e 54 33 c 33 ...

  2. 你好,C++(27)在一个函数内部调用它自己本身 5.1.5 函数的递归调用

    5.1.5 函数的递归调用 在函数调用中,通常我们都是在一个函数中调用另外一个函数,以此来完成其中的某部分功能.例如,我们在main()主函数中调用PowerSum()函数来计算两个数的平方和,而在P ...

  3. c语言:函数的递归调用

    c语言可以将代码模块化,这是其很重要的一个特性. 说道代码模块化,我们很自然的就会联想到函数.而函数中,比较难的一个知识点就是函数的递归调用. 值得注意的是,函数的递归调用在现实工作并不是很常用,但是 ...

  4. java 中函数的参数传递详细介绍

    java中函数的参数传递 总结: 1.将对象(对象的引用)作为参数传递时传递的是引用(相当于指针).也就是说函数内对参数所做的修改会影响原来的对象.  2.当将基本类型或基本类型的包装集作为参数传递时 ...

  5. day14 迭代器,生成器,函数的递归调用

    1.什么是迭代器 迭代是一个重复的过程,但是每次重复都是基于上一次重复的结果而继续 迭代取值的工具 2.为什么要用迭代器 迭代器的优点 ​ ①不依赖于索引取值 ​ ②更节省内存 缺点: ​ 1.不如按 ...

  6. Java中函数的重载

    函数的重载 1.同一个类 2.同名函数 3.参数个数不同或者参数类型不同 4.java是严谨性语言,如果函数出现的调用的不确定性,会编译失败. public static int add(int a, ...

  7. 简谈 JavaScript、Java 中链式方法调用大致实现原理

    相信,在 JavaScript .C# 中都见过不少链式方法调用,那么,其中实现该类链式调用原理,大家有没有仔细思考过?其中 JavaScript 类库:jQuery 中就存在大量例子,而在 C# 中 ...

  8. C51函数的递归调用

    前几天在写C51程序时用到了递归,简单程序如下: void WRITE_ADD(uchar addr,uchar wbyte) { START(); //先发送起始信号 WRITE_BYTE(0xa0 ...

  9. [C++程序设计]函数的递归调用

    在调用一个函数的过程中又出现直接或间接地调用 该函数本身,称为函数的递归(recursive)调用. 包含递归调用的函数称为递归函数. 在实现递归时,在时间和空间上的开销比较大 求n! #includ ...

随机推荐

  1. 实现一个ordeeddict

    class MyOrderdict(): def __init__(self, mydict): self._cur = 0 self._mykeys = [] self._myvalues = [] ...

  2. java线程与进程

    Java线程与进程 进程与线程的关系 进程里面至少有一个线程,进程间的切换会有较大的开销 线程必须依附在进程上,同一进程共享代码和数据空间 多线程的优势 多线程可以达到高效并充分利用cpu 线程使用的 ...

  3. windows下将mysql加入环境变量

    path添加C:\program files\mysql\bin 即可

  4. vue中的eventBus

    在vue2中,父子组件传递数据,父组件可以直接传递数据进子组件,而子组件通过调用父组件传递进来的方法,将自己的数据传递回去. 那兄弟组件之间,或者是兄弟组件的子组件之间如何传递呢? 当然vuex是一种 ...

  5. img图片占不满整个div

    解决方法: img标签自带有3px的空隙,有很多解决方法第一种:设置img{font-size:0}第二种:设置img{display:block}第三种:设置img{vertical-align:t ...

  6. zookeeper工作机制

    Zookeeper Zookeeper概念简介: Zookeeper是为用户的分布式应用程序提供协调服务的 zookeeper是为别的分布式程序服务的 Zookeeper本身就是一个分布式程序(只要有 ...

  7. JAVA 练习 找出素数

    package com.zhang.hello; public class Task { /** * 1. 输出打印九九乘法表 * */ public void NO1(){ for(int i=1; ...

  8. python复杂网络库networkx:绘图draw

    http://blog.csdn.net/pipisorry/article/details/54291831 networkx使用matplotlib绘制函数 draw(G[, pos, ax, h ...

  9. Java对象的内存布局以及对象所需内存大小计算详解

    1. 内存布局 在HotSpot虚拟机中,对象的内存布局可以分为三部分:对象头(Header). 实例数据(Instance Data)和对齐填充(Padding). 1) 对象头(Header): ...

  10. EasyUI常用组件(基础)

    ---------------------------------------------------------------------------------------------------- ...