递推-练习1--noi1760 菲波那契数列(2)

递推-练习1--noi1760 菲波那契数列(2)

一、心得

二、题目

1760:菲波那契数列(2)

总时间限制: 
1000ms

内存限制: 
65536kB
描述
菲波那契数列是指这样的数列: 数列的第一个和第二个数都为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

三、AC代码

 1 /*
 2 noi1760 菲波那契数列(2)
 3 */
 4 #include <iostream>
 5 #define Max 1000005
 6 using namespace std;
 7 int a[Max];
 8 int f(int n){
 9     a[1]=1;
10     a[2]=1;
11     for(int i=3;i<=n;i++){
12         a[i]=(a[i-1]%1000+a[i-2]%1000)%1000;
13     }
14     return a[n];
15 }
16 int main(){
17     int n;
18     cin>>n;
19     for(int i=1;i<=n;i++){
20         int a;
21         cin>>a;
22         cout<<f(a)<<endl;
23     }
24     return 0;
25 } 
时间: 2024-10-25 11:58:20

递推-练习1--noi1760 菲波那契数列(2)的相关文章

使用递推和递归解决斐波那契数列问题~~~

/** * 使用递推的方式处理斐波那契数列 * @param sum * @param i * @return */ public static int findValue(int n){ if(n==1) { return 1; } if(n==2) { return 2; } int sum=1; int pre=1; for(int i=3;i<=n;i++) { int temp=sum; sum+=pre; pre=temp; } return sum; } /** * 采用递归的方式

POJ 2753:菲波那契数列

AC代码: import java.util.Scanner; public class Main { /** * 利用递推得到第n个斐波拉契数 * @param n * @return */ private static int getFibonacciN(int n) { if (n > 2) { return (getFibonacciN(n - 1) + getFibonacciN(n - 2)); }else { return 1; } } public static void mai

2017-3-5 函数 函数返回多个值 递归和菲波那契数列练习

(一)函数的定义:非常抽象,独立完成某项功能的独立个体. 作用:1提高代码的重用性 2提高功能开发的效率性 3提高程序代码的可维护性 函数分为   固定功能函数  高度抽象函数 函数的4要素:输入  输出  函数名  函数体 函数的多种形态: 1.   4要素齐全的 public static 返回值类型 函数名(需要的参数,可以多个,多种数据类型) { 函数体 return 返回返回值类型的数据 } 2.  有参数无返回值的 public ststic void 函数名(参数) { 函数体 }

菲波那契数列编程实现

http://blog.csdn.net/pipisorry/article/details/37660419 斐波那契数列又因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为"兔子数列". fibonacci 数列定义: n = 1,2 时,fib(n) = 1 n > 2 时,fib(n) = fib(n-2) + fib(n-1) 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597,

菲波那契数列的快速幂矩阵求法

时间:2014.05.15 地点:基地二楼 ----------------------------------------------------------------------- 一.背景 著名的斐波那契数列为一个这样的序列:0 1 1 2 3 5 8 13 21 34......简单的递推公式如下: F(0)=0,F(1)=1,当n>=1时,F(n)=F(n-1)+F(n-2) 显然,我们用直接的按公式递归的算法去计算该数列的第n项效率并不高,因为这样每次递归调用我们只是将规规模缩小了

递归--练习6--noi1755菲波那契数列

递归--练习6--noi1755菲波那契数列 一.心得 二.题目 1755:菲波那契数列 总时间限制:  1000ms 内存限制:  65536kB 描述 菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和.给出一个正整数a,要求菲波那契数列中第a个数是多少. 输入 第1行是测试数据的组数n,后面跟着n行输入.每组测试数据占1行,包括一个正整数a(1 <= a <= 20) 输出 输出有n行,每行输出对应一个输入.输出应是一个正整数,为菲波那契数列中第

js获取菲波那契数列的第N个元素

菲波那契数列,大致可以描叙为a(n) = a(n-1) + a(n-2) (a >=2).类似于这样[1, 1, 2, 3, 5, 8, 13 ...]. 具体大家可以百度一下.下面我们来用js获取菲波那契数列的第N个数为多少: 1.递归 var a = function(n) { if (n === 1 || n === 2) { return 1 } else { return a(n - 1) + a(n - 2) } } console.time('a(44)') console.log

1-5-13:菲波那契数列

描述 菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和.给出一个正整数k,要求菲波那契数列中第k个数是多少. 输入输入一行,包含一个正整数k.(1 <= k <= 46)输出输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小 样例输入 19 样例输出 4181 来源1755 #include<stdio.h> int main() { int k,i,a1=1,a2=1,a=1; scanf("%d",&

菲波拉契数列(传统兔子问题)

题目: 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 斐波那契数: 亦称之为斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列.费波那西数列.费波拿契数.费氏数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*),用文字来说,就