B2064 斐波那契数列
解题思路
-
问题分析:
-
斐波那契数列的定义:前两项为1,从第三项开始每一项等于前两项之和。
-
需要根据输入的查询序号,输出斐波那契数列中对应位置的数值。
-
-
关键步骤:
-
预先生成斐波那契数列的前30项(因为题目给定的a范围是1-30)。
-
对于每组查询,直接返回预先生成的数列中对应位置的数值。
-
-
代码逻辑:
-
使用数组
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; }
-

浙公网安备 33010602011771号