B2064 斐波那契数列

解题思路

  1. 问题分析

    • 斐波那契数列的定义:前两项为1,从第三项开始每一项等于前两项之和。

    • 需要根据输入的查询序号,输出斐波那契数列中对应位置的数值。

  2. 关键步骤

    • 预先生成斐波那契数列的前30项(因为题目给定的a范围是1-30)。

    • 对于每组查询,直接返回预先生成的数列中对应位置的数值。

  3. 代码逻辑

    • 使用数组x存储斐波那契数列。

    • 初始化前两项x[1] = x[2] = 1

    • 循环计算后续各项的值。

    • 对于每组查询,直接输出数组对应位置的值。

      #include<bits/stdc++.h>
      using namespace std;
      
      int main() {
          // 设置输入的组数
          int n;
          cin >> n;
          
          // 利用for循环实现多种组数的输入
          for (int i = 1; i <= n; i++) {
              // 输入每组查询的具体值
              int a;
              cin >> a;
              
              // 创建数列,用来存放斐波那契数列
              int x[40]; // 多分配空间以防越界
              
              /*
              斐波那契数列的规律:
              - 前两项等于1 
              - 从第三项开始,前两项和相加等于下一项 
              */
              x[1] = x[2] = 1; // 初始化前两项
              
              // 计算斐波那契数列的第3项到第a项
              for (int i = 3; i <= a; i++) {
                  x[i] = x[i - 2] + x[i - 1]; // 当前项等于前两项之和
              }
              
              // 输出斐波那契数列的第a项
              cout << x[a] << endl;
          }
          
          return 0;
      }

       

posted @ 2025-05-15 20:04  乐意丘  阅读(140)  评论(0)    收藏  举报