大家都知道斐波那契数列,现在要求输入一个正整数 n ,请你输出斐波那契数列的第 n 项。
斐波那契数列是一个满足
的数列
数据范围:
要求:空间复杂度
,时间复杂度
,本题也有时间复杂度
的解法
仅输入一个正整数 n。
输出斐波那契数列中第 n 个数。
4
3
根据斐波那契数列的定义可知,fib(1)=1,fib(2)=1,fib(3)=fib(3-1)+fib(3-2)=2,fib(4)=fib(4-1)+fib(4-2)=3,所以答案为3。
1
1
2
1
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
//while (in.hasNextInt()) { // 注意 while 处理多个 case
/*int a = in.nextInt();
int b = in.nextInt();
System.out.println(a + b);*/
int num = in.nextInt();
int arr[] = new int[num + 1];
arr[1] = 1;
arr[2] = 1;
for(int i = 3;i <= num ;i++){
arr[i] = arr[i - 1] + arr[i - 2];
}
System.out.println(arr[num]);
}
//}
} import java.io.*;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
System.out.println(fib(n));
}
public static int fib(int n){
int prev =1;
int next =1;
if(n==1 || n==2) return 1;
int cur = 0;
for(int i = 2; i < n; i++){
cur = prev + next;
prev = next;
next = cur;
}
return cur;
}
} import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int prev1 = 1;
int prev2 = 1;
for (int i = 3; i <= n; i++) {
int cur = prev2 + prev1;
prev2 = prev1;
prev1 = cur;
}
System.out.println(prev1);
}
}