zoukankan      html  css  js  c++  java
  • TZOJ--1247: Hat's Fibonacci(大数)

    1247: Hat's Fibonacci 

    时间限制(普通/Java):1000MS/10000MS     内存限制:32768KByte

    描述

    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.

    输入

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

    输出

    For each case, output the result in a line.

    Note:

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

    样例输入

     100

    样例输出

     4203968145672990846840663646

    题目来源

    HDOJ

     

    题目链接:http://tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=1247

    题目大意: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),根据这个公式计算F(n)

    数据保证了输出最多不超过2005位,但我自己人懒不想打表估计2005位的需要开多大的数组,所以用了一个滑动的数组进行计算

    f[i%4] = f[(i-1)%4]+f[(i-2)%4]+f[(i-3)%4]+f[(i-4)%4]

     

    JAVA代码:

    ​import java.io.*;
    import java.util.*;
    import java.math.*;
    public class Main
    { 
        public static void main(String args[]) throws Exception 
        { 
            Scanner cin=new Scanner(System.in); 
            BigInteger f[] = new BigInteger[10];
            f[3]=f[2]=f[1]=f[0]=BigInteger.ONE;
            while(cin.hasNext())
            {
            	int a=cin.nextInt();
            	f[3]=f[2]=f[1]=f[0]=BigInteger.ONE;
            	for(int i=4;i<a;i++)
            	{
            		f[(i)%4]=f[(i-1)%4].add(f[(i-2)%4].add(f[(i-3)%4].add(f[(i-4)%4])));
            	}
            	System.out.println(f[(a-1)%4]);
            }
        }
    }
    
    ​
    

      

    PYthon代码:

    while True:
    	try:
    		n = int(input())
    		f = [1,1,1,1]
    		for i in range(4,n+1) :
    		    f[i%4] = f[i%4]+f[(i-1)%4]+f[(i-2)%4]+f[(i-3)%4]
    		print(f[(n-1)%4])
    		
    	except EOFError:
    		break
    

      

  • 相关阅读:
    python mysql and ORM
    mysql-8.0.12-winx64 解压版安装(转)
    mysql装完计算机管理里面没mysql服务怎么解决(转)
    Python使用MySQL数据库(新)(转)
    Python之路,Day9
    python随笔2(列表的增删改查)
    python随笔1
    2018-05-23——PYTHON第三天
    2018-05-22——PYTHON第二天
    2018-05-21——python第一天
  • 原文地址:https://www.cnblogs.com/Anidlebrain/p/10052831.html
Copyright © 2011-2022 走看看