新人求助 这段代码有点看不懂 fibonacciSequence(int n)方法 在哪里被调用了呢
题目是 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
答案我看不懂
import java.util.Scanner;
public class Test01 {
@SuppressWarnings("resource")
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
System.out.println("请输入月份:");
int month=in.nextInt();
System.out.println("第"+month+"月免子总数为"+recursive(month)*2);
}
public static int recursive(int n){
if(n==1||n==2){
return 1;
}else{
return recursive(n-1)+recursive(n-2);
}
}
public static int fibonacciSequence(int n){
if(n<0){
return -1;
}
if(n==1||n==2){
return 1;
}
int result = 0;
int prevFirst = 1;
int prevSecond = 1;
for(int i=3;i<=n;i++){
result = prevFirst + prevSecond;
prevSecond = prevFirst;
prevFirst = result;
}
return result;
}
}
流程我是懂了 兔子总数是 上月兔子数加上上上月的兔子数 main方法调取recursive(int n)方法 实现第一月和第二月兔子数 和上月兔子数加上上上月的兔子数fibonacciSequence(int n)方法是一个循环遍历 用于找出 当月的上月兔子数和上上月兔子数
我不明白的就是 fibonacciSequence(int n) 方法是怎样传过来的 还有就是 我没看懂 fibonacciSequence(int n)方法在哪里被调用了然后result又是怎样传回给recursive(int n)方法的。
谢谢各位了
fibonacciSequence方法没有在这段代码中被调用。你可以在main方法中调用这个方法来获得某个月份的兔子总数。下面是修改后的代码:
import java.util.Scanner;
public class Test01 {
@SuppressWarnings("resource")
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入月份:");
int month = in.nextInt();
int rabbitNumber = fibonacciSequence(month);
System.out.println("第" + month + "月兔子总数为" + rabbitNumber);
}
public static int fibonacciSequence(int n) {
if (n == 1 || n == 2) {
return 1;
} else {
int a = 1;
int b = 1;
int sum = 0;
for (int i = 3; i <= n; i++) {
sum = a + b;
a = b;
b = sum;
}
return sum;
}
}
}
现在,fibonacciSequence方法被调用并用于计算第n个月份的兔子总数。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]