首页 > 试题广场 >

牛牛学数列5

[编程题]牛牛学数列5
  • 热度指数:25857 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}牛牛开始学习数列啦。现定义斐波那契数列,其前两项为 F_1=1, F_2=1,对于 n\geqq3,有:

\displaystyle F_n = F_{n-1} + F_{n-2}

\hspace{15pt}请计算并输出第 nF_n 的值。

输入描述:
\hspace{15pt}在一行中输入一个整数 n,满足 1 \leqq n \leqq 46


输出描述:
\hspace{15pt}输出一个整数,表示斐波那契数列的第 nF_n
示例1

输入

2

输出

1
示例2

输入

6

输出

8

说明

数列前几项为 1,1,2,3,5,8,因此 F_6=8
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 F1 = 1,F2 = 1,F3 = F1 + F2;
            if(a == 1||a == 2){
                System.out.print(1);
            }else if(a == 3){
                System.out.print(2);
            }else{
                for(int i = 1;i<=a-2;i++){
                    F1 = F2;
                    F2 = F3;
                    F3 = F1 + F2;
                }
                System.out.println(F2);
            }
           
        }
    }
}
发表于 2026-01-28 16:29:13 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        //使用Scanner录入一个整数n,n取值[1,46]
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int F1 = 1;
        int F2 = 1;
        int Fn = 0;;
        if (n == 1 || n == 2) {
            Fn=F1;
        }

        for (int i = 3; i <= n; i++) {
            Fn = F2 + F1;
            F1 = F2;
            F2 = Fn;
        }
        System.out.println(Fn);

    }
}
发表于 2025-11-01 11:07:39 回复(0)