面向对象(上)-递归方法的使用、递归方法的举例
package top.qaqaq.java.P216;
/*
 * 递归方法的使用(了解)
 * 1. 递归方法:一个方法体内调用它自身。
 * 2. 方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无需循环控制。
 * 		递归一定要向已知方向递归,否则这种递归就变成了无穷递归,类似于死循环。
 * 
 * 
 * 
 * 
 * 
 */
public class RecursionTest {
	
	public static void main(String[] args) {
		
		//例1:计算1-100之间所有自然数的和
		int sum = 0;
		for(int i = 1; i <= 100; i++) {
			sum += i;
		}
		System.out.println(sum);
		
		//方式二:
		RecursionTest test = new RecursionTest();
		int sum1 = test.getSum(100);
		System.out.println(sum1);
		
		System.out.println("**************************");
		int value = test.f(10);
		System.out.println(value);
		
	}
	//例1:计算1-n之间所有自然数的和
	public int getSum(int n) {//3
		if(n == 1) {
			return 1;
		}else {
			return n + getSum(n - 1);
		}
	}
	
	//例2:计算1-n之间所有自然数的乘积:n!
	public int getSum1(int n) {
		if(n == 1) {
			return 1;
		}else {
			return n * getSum1(n - 1);
		}
	}
	
	//例3:已知有一个数列:f(0) = 1,f(1) = 4,f(n+2)=2*f(n+1) + f(n),
	//其中n是大于0的整数,求f(10)的值。
	public int f(int n) {
		if(n == 0) {
			return 1;
		}else if(n == 1) {
			return 4;
		}else {
//			return f(n + 2) - 2 * f(n +1);
			return 2*f(n - 1) + f(n - 2);
		}
	}
	
	//例4:斐波那契数列
	
	//例5:汉罗塔问题
	
	//例6:快排
	
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇