java案例练习之个人见解(每日有空必更新)

本文深入探讨了递归算法的应用,通过实例讲解了5的阶乘和斐波那契数列的计算方法。提供了完整的Java代码实现,展示了如何利用递归解决数学问题。

题目一:求5的阶乘:

思路解析:函数的递归
代码实现:

package shipin;
 
public class Array_04_01 {
	public static void main(String[] args) {
//		求5的阶乘
		int jc = name(5);
		System.out.println(jc);
	}
	public static int name(int n) {
		if (n == 0) {
			return 1;
		}else {
			return n * name(n - 1);
		}
	}
}

题目二:斐波那切数列(不死神兔)

题目:有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,加入兔子都不死,问第二十个月的兔子对数是多少?
思路分析:
第一月与第二个月作为迭代函数“出口”,从第三个月开始生兔子,前两个月之和为第三个月的数量,计算公式如下:
F(0) = 0
F(1) = 1
F(n) = F(n - 1) + F(n - 2)
有关斐波那契的介绍请点击这(传送门)
代码实现(想看其他语言实现请看我的其他博客):

package shipin;

import java.util.Scanner;

public class Array_04_01 {
	public static void main(String[] args) {
		Scanner set = new Scanner(System.in);
		System.out.println("请输入求斐波那契数列的最后一个数值:");
		int str = set.nextInt();		
		System.out.println(method(str));
	}
	public static int method(int n) {
		if (n == 1 || n == 2) {
			return 1;
		}else {
			//不是第一个月,则后一个月是前两个月之和
			return method(n - 1) + method(n - 2);
		}
	}
}

关于此不死神兔的问题,我个人有以下的见解,,下面是我的代码,希望有能力者留言解答,(输入-0则程序会终止,透过问题看到本质)

import java.util.Scanner;

public class Array_04_01 {
	public static void main(String[] args) {
		boolean cry = true;
		Scanner set = new Scanner(System.in);	
			try {
				while (cry) {
					System.out.println("请输入不死神兔的月份:(温馨提示:输入0程序终止!)");
					int str = set.nextInt();
					if (str > 0) {
						System.out.println("不死神兔的数量为:"+method(str));						
					}
					if (str == 0) {
						cry = false;
					}
					if (str < 0) {
						System.out.println("不存在这样的情况! 请重新输入:");
					}
}
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} 
	}
	public static int method(int n) {
		if (n == 0) {
			System.out.println("不存在0月份!请重新输入:");
			
		}
		if (n == 1 || n == 2) {
			return 1;
		}else {
			//不是第一个月,则后一个月是前两个月之和
			return method(n - 1) + method(n - 2);
		}
	}
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ctrl精

面试很多问题,积攒不容易

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值