(1188:1201:)斐波那契数列

简介: (1188:1201:)斐波那契数列

1188:菲波那契数列(2)

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。

给出一个正整数a,要求菲波那契数列中第a个数对1000取模的结果是多少。

【输入】

第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1 ≤ a ≤ 1000000)。

【输出】

n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数对1000取模得到的结果。

【输入样例】

4

5

2

19

1

【输出样例】

5

1

181

1

【来源】

No

分析:本题目中a的取值范围为(1 ≤ a ≤ 1000000),所得的数据很大,运用递归解题显然不行,同时还要考虑是否要用到高精度运算。本题输出的是第a个数对1000取模得到的结果,我们只需要处理最后三位数的计算即可,用不上高精度。最终的解题思路为:递推取模。

1. #include<bits/stdc++.h>
2. using namespace std;
3. long long feib2(int n)//递推 
4. {
5.  if(n==1||n==2) return 1;
6.  long long a,b,c;
7.  a=1,b=1;
8.  for(int i=3;i<=n;i++)
9.  {c=(a+b)%1000;a=b;b=c;}
10.   return c; 
11. }
12. int main()
13. {
14.   int n;
15.   long long a[200];
16.   cin>>n;
17.   for(int i=1;i<=n;i++) {cin>>a[i];printf("%lld\n",feib2(a[i]));}
18. return 0;
19. }

1201:菲波那契数列

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。

给出一个正整数a,要求菲波那契数列中第a个数是多少。

【输入】

第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1≤a≤20)。

【输出】

输出有n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数的大小。

【输入样例】

4

5

2

19

1

【输出样例】

5

1

4181

1

【来源】

No

分析:本题目中a的取值范围为(1≤a≤20)。运用递归解题即可。

1. #include<bits/stdc++.h>
2. using namespace std;
3. int feib(int n)//递归 
4. {
5.  if(n==1||n==2) return 1;
6.  return feib(n-1)+feib(n-2); 
7. }
8. int main()
9. {
10.   int n;
11.   int a[200];
12.   cin>>n;
13.   for(int i=1;i<=n;i++){
14.     cin>>a[i];
15.     printf("%d\n",feib(a[i]));
16.   }
17. return 0;
18. }

 

相关文章
|
13天前
|
算法
【超直白】算法:斐波那契数列
【超直白】算法:斐波那契数列
8 1
【超直白】算法:斐波那契数列
|
18天前
|
算法 大数据
斐波那契数列
斐波那契数列
|
14天前
|
算法 Java 测试技术
斐波那契数列的四种实现算法
斐波那契数列的四种实现算法
15 3
|
10天前
|
存储 算法
精益求精——斐波那契数列的logn解法
精益求精——斐波那契数列的logn解法
7 0
|
2月前
|
机器学习/深度学习 算法
|
2月前
生成斐波那契数列的几种不同的方法
生成斐波那契数列的几种不同的方法
28 0
|
12月前
|
机器学习/深度学习 开发工具
斐波那契数列的四种实现
在编程教程中提到斐波那契数列,通常都是用来讲解递归函数。当一个关于 N 的问题可以转换为关于 N - k 的同样问题时,它就可以尝试用递归的思路来解决。
斐波那契数列问题
斐波那契数列问题
66 0
|
前端开发 程序员 测试技术
斐波那契数列的多种解法
斐波那契数列的多种解法
斐波那契数列的多种解法
|
算法
30.斐波那契数列
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39
59 0
30.斐波那契数列