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
    

      

  • 相关阅读:
    C# 从服务器下载文件
    不能使用联机NuGet 程序包
    NPOI之Excel——合并单元格、设置样式、输入公式
    jquery hover事件中 fadeIn和fadeOut 效果不能及时停止
    UVA 10519 !! Really Strange !!
    UVA 10359 Tiling
    UVA 10940 Throwing cards away II
    UVA 10079 Pizze Cutting
    UVA 763 Fibinary Numbers
    UVA 10229 Modular Fibonacci
  • 原文地址:https://www.cnblogs.com/Anidlebrain/p/10052831.html
Copyright © 2011-2022 走看看