每日一九度之 题目1075:斐波那契数列

时间限制:5 秒

内存限制:32 兆

特殊判题:

提交:3517

解决:2028

题目描述:

编写一个求斐波那契数列的递归函数,输入n值,使用该递归函数,输出如样例输出的斐波那契数列。

输入:

一个整型数n

输出:

题目可能有多组不同的测试数据,对于每组输入数据,
按题目的要求输出相应的斐波那契图形。

样例输入:
6
样例输出:
0
0 1 1
0 1 1 2 3
0 1 1 2 3 5 8
0 1 1 2 3 5 8 13 21
0 1 1 2 3 5 8 13 21 34 55

这题可以直接按题意写个递归,也可以直接预处理。

递归比预处理要慢一点。

代码如下(注释的那几句就是直接用递归的方法):

//Asimple
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <vector>
#include <cctype>
#include <cstdlib>
#include <stack>
#include <cmath>
#include <set>
#include <map>
#include <string>
#include <queue>
#include <limits.h>
#define INF 0x7fffffff
using namespace std;
const int maxn = 55;
typedef long long ll;
int n;
ll a[maxn];

//int fun(int n){
//    if( n == 0 ) return 0;
//    else if( n == 1) return 1;
//    else return fun(n-1)+fun(n-2);
//}

int main(){
    a[0] = 0;
    a[1] = 1;
    for(int i=2; i<maxn; i++){
        a[i] = a[i-1] + a[i-2];
    }
    while( ~scanf("%d",&n) ){
        for(int i=0; i<n; i++){
            for(int j=0; j<=2*i; j++){
                printf(j==0?"%ld":" %ld",a[j]);
                //printf("%d",fun(j));
                //if( j!=2*i){
                    //printf(" ");
                //}
            }
            printf("\n");
        }
    }
    return 0;
}
时间: 2024-09-29 17:32:49

每日一九度之 题目1075:斐波那契数列的相关文章

python 题目:斐波那契数列计算;题目:站队顺序输出;题目:合法括号组合的生成;题目:用户登录(三次机会)

斐波那契数列计算 B 描述 斐波那契数列如下: F(0) = 0, F(1) = 1 F(n) = F(n-1) + F(n-2) 编写一个计算斐波那契数列的函数,采用递归方式,输出不超过n的所有斐波那契数列元素 调用上述函数,完成如下功能: 用户输入一个整数n,输出所有不超过n的斐波那契数列元素.输出数列的元素和及平均数,输出按照顺序,用英文逗号和空格分割 此题目为自动评阅,请严格按照要求规范输入和输出. def jebona(n): if n==0: return 0 elif n == 1

斐波拉契数列带来的思考

无意间看到一道题: 编写一个计算前100位斐波那契数的函数.根据定义,斐波那契序列的前两位数字是0和1,随后的每个数字是前两个数字的和.例如,前10位斐波那契数为:0,1,1,2,3,5,8,13,21,34. 我一看这不是熟悉的斐波那契数列嘛,简单!一个递归搞定,就没重视了.然后晚上自己尝试写着玩,却发现原来自己智力被爆. 首先写了个这样的程序: public class FibonnacciA{ public static void main(String[] args){ System.o

斐波那契数列——矩阵的幂求解

题目: 斐波那契数列的递推公式如下: F(0) = 0; F(1) = 1; F(n + 2) = F(n + 1) + F(n); 求数列的第N项的值对10000取余的结果.( 0<=n<= 10^16) 求解斐波那契数列,如果N比较小的情况下,可以直接打表求解,但是对于N很大的情况下,并不适用. 所以,有些人会想到高精度计算,但是,N达到10^5以上时,时间复杂度难以想象,每计算一个数,需要进行高精度加法.然而还有求解对10000的取余的值. 我们可以用矩阵的幂来求解.斐波那契数列的递推公

练习六:斐波那契数列(fibonacci)

题目:斐波那契数列. 程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.……. 在数学上,斐波那契数列是以递归的方法来定义: F0 = 0 (n=0)F1 = 1 (n=1)Fn = F[n-1]+ F[n-2](n=>2)--------------------- 方法一:使用递归计算 1 def fibonacci(month): 2 if month == 1: 3 return 1 4 el

九度oj 题目1075:斐波那契数列

题目1075:斐波那契数列 时间限制:5 秒 内存限制:32 兆 特殊判题:否 提交:3641 解决:2100 题目描述: 编写一个求斐波那契数列的递归函数,输入n值,使用该递归函数,输出如样例输出的斐波那契数列. 输入: 一个整型数n 输出: 题目可能有多组不同的测试数据,对于每组输入数据,按题目的要求输出相应的斐波那契图形. 样例输入: 6 样例输出: 0 0 1 1 0 1 1 2 3 0 1 1 2 3 5 8 0 1 1 2 3 5 8 13 21 0 1 1 2 3 5 8 13 2

题目九:斐波那契数列

///////////////////////////////////////////////////////////////////////////////////////////// // 13.题目九:斐波那契数列 /*写一个函数,输入N,求斐波那契(Fibonacci)数列的第N项. F(n) = {0    n == 0;         1    n == 1;         F(n -1) + F(n -2) n > 1;         } */ static int s_Ru

LintCode Python 入门级题目 斐波纳契数列

原题描述: 查找斐波纳契数列中第 N 个数. 所谓的斐波纳契数列是指: 前2个数是 0 和 1 . 第 i 个数是第 i-1 个数和第i-2 个数的和. 斐波纳契数列的前10个数字是: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ... 题目分析: 开始的想法,通过递归实现输出fib(n-1)+fib(n-2)的值计算,原理正确,算法复杂度高,导致运行时间超过lintcode限制: class Solution: # @param n: an integer # @retur

《剑指Offer》题目——斐波拉契数列

题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项.(n<=39) 题目分析:如果使用简单的递归,很容易造成栈溢出.采用递推的方式即可. 代码: public class Fibonacci { public static int fibonacci(int n){ int res[] = new int[2]; res[0]=1; res[1]=1; int temp = 0; if(n==0) return 0; if(n<=2) return res[

【编程小题目1】求解斐波拉契数列问题

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... 斐波那契数列又因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”.Fibonacci 数列定义:n = 1,2 时,fib(n) = 1n > 2 时,fib(n) = fib(n-2) + fib(n-1) // 递归算法求解Fibonacci 数列 #i