马士兵J2SE-第二章-J2SE基础语法(周六补充)-递归、非递归

简介:
//求5的阶乘

public class test {
	public static void main(String[] args) {
		System.out.println(method(4));
	}
	
	public static int method(int n) {
		if (n==1) return 1;
		else return n*method(n-1);
	}
}


输出:24

 

 

//利用递归求Fibonacci数列:1,1,2,3,,5,8……第40个数的值。数列满足递推公式:
//F1=1,F2=1,……,Fn=Fn-1 + Fn-2(n>2)

public class test {
	public static void main(String[] args) {
		System.out.println(method(4));
	}
	
	public static int method(int n) {
		if (n==1||n==2) return 1;
		else return method(n-1)+method(n-2);
	}
}


输出: 3

 

 

 非递归调用

public class Fab {
	public static void main(String[] args) {
		System.out.println(f(-9));
	}
	
	public static long f(int index) {
		if(index < 1) {
			System.out.println("invalid parameter!");
			return -1;
		}
		
		if(index == 1 || index == 2) {
			return 1;
		}
		
		long f1 = 1L;
		long f2 = 1L;
		long f = 0;
		
		for(int i=0; i<index-2; i++) {
			f = f1 + f2;
			f1 = f2;
			f2 = f;
			
		}
		
		return f;
	}
}


输出:

102334155

输入-9时输出:

invalid parameter
-1

 

 

 

 

 

 

 

目录
相关文章
|
1月前
|
C语言
C程序设计内容与例题讲解 -- 第四章--选择结构程序设计(第五版)谭浩强
C程序设计内容与例题讲解 -- 第四章--选择结构程序设计(第五版)谭浩强
|
3月前
|
算法 JavaScript 前端开发
递归的递归之书:第五章到第九章
递归的递归之书:第五章到第九章
96 0
|
3月前
|
存储 算法 JavaScript
递归的递归之书:引言到第四章
递归的递归之书:引言到第四章
113 0
|
1月前
|
C语言
C程序设计内容与例题讲解 -- 第四章--选择结构程序设计第二部分(第五版)谭浩强
C程序设计内容与例题讲解 -- 第四章--选择结构程序设计第二部分(第五版)谭浩强
|
3月前
|
Java 编译器
JavaSE学习之常见易错点总结--第一期
JavaSE学习之常见易错点总结--第一期
26 0
|
6月前
|
存储 C++ 容器
C++初阶之一篇文章教会你list(理解和使用)(中)
3. max_size() max_size() 是 std::list 容器的一个成员函数,用于返回容器可能容纳的最大元素数量,通常受到系统内存限制的影响。它返回一个无符号整数类型,表示容器的最大大小。函数签名如下:
|
9月前
|
搜索推荐 Java 索引
【JavaSE】Java基础语法(二十三):递归与数组的高级操作
1. 递归 1.1 递归 递归的介绍 以编程的角度来看,递归指的是方法定义中调用方法本身的现象 把一个复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解 递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算
|
10月前
|
C++
C++ Primer Plus 第八章答案 函数探幽
只有聪明人才能看见的摘要~( ̄▽ ̄~)~
81 0

热门文章

最新文章