专栏首页程序编程之旅HDOJ/HDU 1250 Hat's Fibonacci(大数~斐波拉契)

HDOJ/HDU 1250 Hat's Fibonacci(大数~斐波拉契)

Problem Description A Fibonacci sequence is calculated by adding the previous two members the sequence, with the first two members being both 1. F(1) = 1, F(2) = 1, F(3) = 1,F(4) = 1, F(n>4) = F(n - 1) + F(n-2) + F(n-3) + F(n-4) Your task is to take a number as input, and print that Fibonacci number.

Input Each line will contain an integers. Process to end of file.

Output For each case, output the result in a line.

Sample Input 100

Sample Output 4203968145672990846840663646

Note: No generated Fibonacci number in excess of 2005 digits will be in the test data, ie. F(20) = 66526 has 5 digits.

就是根据这个公式: F(1) = 1, F(2) = 1, F(3) = 1,F(4) = 1, F(n>4) = F(n - 1) + F(n-2) + F(n-3) + F(n-4)

输入一个n,输出f(n)的值。

注意,这是大数~答案的位数高达2005位~~~

再一次体会Java大数的强大吧~

import java.math.BigInteger;
import java.util.Scanner;

public class Main {
    static BigInteger f[] = new BigInteger[7045];
    public static void main(String[] args) {
        dabiao();
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int n =sc.nextInt();
            System.out.println(f[n]);
            //System.out.println("---------");
            //System.out.println(f[n].toString().length());
            //开数组~看开到多少位的时候,位数大于2005
        }
    }
    private static void dabiao() {
        f[1]=new BigInteger("1");
        f[2]=new BigInteger("1");
        f[3]=new BigInteger("1");
        f[4]=new BigInteger("1");
        for(int i=5;i<f.length;i++){
            f[i]=f[i-1].add(f[i-2]).add(f[i-3]).add(f[i-4]);
        }
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Next Fibonacci Number(下一个斐波拉契数列)

    Write a program that takes input of integer N, followed by N more integers.

    HoneyMoose
  • 算法之美——魔鬼序列

    假设第1个月有1对刚诞生的兔子,第2个月进入成熟期,第3个月开始生育兔子,而1对成熟的兔子每月会生1对兔子,兔子永不死去……那么,由1对初生兔子开始,12个月...

    rainchxy
  • Python第二十三课:递归斐波那契

    斐波那契(fibonacci) 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fib...

    红芽
  • LeetCode 509. 斐波那契数

    斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:

    村雨遥
  • 【编程之美】斐波拉契数列

    斐波拉契 意大利的数学家列昂那多·斐波那契在1202年研究兔子产崽问题时发现了此数列.设一对大兔子每月生一对小兔子,每对新生兔在出生一个月后又下崽,假若兔子都不...

    程序员互动联盟
  • hdu-------(1848)Fibonacci again and again(sg函数版的尼姆博弈)

    Fibonacci again and again Time Limit: 1000/1000 MS (Java/Others)    Memory Limit...

    Gxjun
  • HDUOJ-------- Fibonacci again and again

       Fibonacci again and again Time Limit : 1000/1000ms (Java/Other)   Memory Limi...

    Gxjun
  • HDU 1848 Fibonacci again and again(SG函数)

    Problem Description 任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生,它是这样定义的: F(1)=1; ...

    attack
  • Python函数定义及参数详解

    首先我们来创建一个函数,输出指定范围内的斐波拉契数列(Fibonacci series)。

    职场亮哥
  • 算法一看就懂之「 递归 」

    之前的文章咱们已经聊过了「 数组和链表 」、「 堆栈 」和「 队列 」,今天咱们来看看「 递归 」,当然「 递归 」并不是一种数据结构,它是很多算法都使用的一种...

    奎哥
  • Go 语言基础入门教程 —— 函数篇:递归函数与性能优化

    很对编程语言都支持递归函数,所谓递归函数指的是在函数内部调用函数自身的函数,从数学解题思路来说,递归就是把一个大问题拆分成多个小问题,再各个击破,在实际开发过程...

    学院君
  • 排序,搜索,算法模式,算法复杂度 | 数据结构与算法综合笔记

    游戏示例:一个1到100的数字游戏。我们每回应一个数字,那个人就会说这个数字是高了、低了还是对了。

    达达前端
  • 面试题精选:神奇的斐波那契数列

    斐波那契数列,其最开始的几项是0、1、1、2、3、5、8、13、21、34…… ,后面的每一项是前两项之和,事实上,斐波那契在数学上有自己的严格递归定义。

    xindoo
  • 【一天一道Leetcode】回文字符串-最少分割次数

    因为本题可能会涉及到大量的比较,为了提供代码运行效率,较少运行时间,我们引入装饰器。

    潘永斌
  • C语言编程笔试题(一)

      今天博主在练习题时碰见了一道有关斐波那契数列的题目,令博主一时无了头绪,后来搞清楚斐波那契数列的性质及有关知识后,现在分享给大家。

    RAIN7
  • C编程练习001

    正念君
  • 用x种方式求第n项斐波那契数,99%的人只会第一种

    大家好啊,我们又见面了。听说有人想学数据结构与算法却不知道从何下手?那你就认真看完本篇文章,或许能从中找到方法与技巧。

    C you again
  • 潘石屹用python解决100个问题 | 斐波那契数列

    今天跟大家一起学习一个经典数列:黄金分割数列。意大利数学家斐波那契(Fibonacci)十二世纪就发现了它,后人用他的名字命名这个数列,即:1, 1, 2, 3...

    week
  • 算法-查找斐波纳契数列中第 N 个数

    OBKoro1

扫码关注云+社区

领取腾讯云代金券