菲波那契数列,求第k个数的值

题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子成长到第三个月后每个月又生一对兔子,假如兔子不死,问每个月兔子的总数是多少?

 1 //菲波那契数列,输出第k个数的值
 2 #define _CRT_SECURE_NO_WARNINGS
 3 #include <stdio.h>
 4
 5 int FibonacciNum(int n){
 6     if (n < 0){
 7         return -1;
 8     }
 9     if (n == 0){
10         return 0;
11     }
12     else if (n == 1){
13         return 1;
14     }
15     else {
16         return(FibonacciNum(n - 1) + FibonacciNum(n - 2));
17     }
18 }
19
20 int main(){
21     int num;
22     if (scanf("%d", &num)){
23         if ((num >= 0) && (num <= 50)){
24             printf("%d", FibonacciNum(num));
25         }
26         else{
27             printf("error!");
28             return 0;
29         }
30     }
31     else{
32         printf("error!");
33         return 0;
34     }
35     return 0;
36 }

结果如下

时间: 2024-10-03 10:09:57

菲波那契数列,求第k个数的值的相关文章

求菲波那契数列的第n个数

1,2,3,5,8,13..... 求第n个数 def get_num(n): if n == 1: return 1 if n == 2: return 2 return get_num(n - 1) + get_num(n - 2) def get_num(n): if n == 1: return 1 if n == 2: return 2 a = 1 b = 2 for i in range(n - 2): a, b = b, a + b return b分为递归和循环两个求法

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",&

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

递推-练习1--noi1760 菲波那契数列(2) 一.心得 二.题目 1760:菲波那契数列(2) 总时间限制:  1000ms 内存限制:  65536kB 描述 菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和.给出一个正整数a,要求菲波那契数列中第a个数对1000取模的结果是多少. 输入 第1行是测试数据的组数n,后面跟着n行输入.每组测试数据占1行,包括一个正整数a(1 <= a <= 1000000). 输出 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

2753:菲波那契数列

2753:菲波那契数列 查看 提交 统计 提示 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和.给出一个正整数a,要求菲波那契数列中第a个数是多少. 输入 第1行是测试数据的组数n,后面跟着n行输入.每组测试数据占1行,包括一个正整数a(1 <= a <= 20) 输出 输出有n行,每行输出对应一个输入.输出应是一个正整数,为菲波那契数列中第a个数的大小 样例输入 4 5 2

1755:菲波那契数列

总时间限制: 1000ms 内存限制: 65536kB描述菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和.给出一个正整数a,要求菲波那契数列中第a个数是多少.输入第1行是测试数据的组数n,后面跟着n行输入.每组测试数据占1行,包括一个正整数a(1 <= a <= 20)输出输出有n行,每行输出对应一个输入.输出应是一个正整数,为菲波那契数列中第a个数的大小样例输入452191样例输出5141811 斐波那契数列代码很多人的递归写法如下: 1 lon

1188:菲波那契数列(2)

[题目描述] 菲波那契数列是指这样的数列: 数列的第一个和第二个数都为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 传送门:

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

时间: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项效率并不高,因为这样每次递归调用我们只是将规规模缩小了