c语言sscanf函数的用法是什么
249
2022-09-14
入门经典编程题-斐波那契
题目
菲波拉契数列:有一对兔子, 从出生后第 3 个月起每个月都生一对兔子, 小兔子长到第三个月后每个月又生一对兔子, 假如兔子都不死, 问每个月的兔子总数为多少?
分析
从一个月开始的兔子数列:1 1 2 3 5 8 13 规律:第i个月兔子数 = 第i-1个月的兔子数+第i-2个月的兔子数
Java实现
递归
public static void example01(){ Scanner sc = new Scanner(System.in); int i = sc.nextInt(); //输入第i个月 int num = 0; //兔子数 if (i == 1 || i == 2) num = 1; num += num(1,1,i); System.out.println(num); } public static int num(int a1,int a2,int i){ if (i == 3) return a1+a2; return num(a2,a2+a1,--i); }
非递归
public static void example01_2(){ Scanner sc = new Scanner(System.in); int i = sc.nextInt(); //输入第i个月 int num = 0; //兔子数 if (i == 1 || i == 2) num = 1; int a1 = 1; int a2 = 1; for (int j = 3; j <= i; j++) { num = a1 + a2; a1 = a2; a2 = num; } System.out.println(num); }
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~