HDU 1250 Hat's Fibonacci
2017-03-17 09:36
405 查看
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 Input100 |
Sample Output4203968145672990846840663646 Note: No generated Fibonacci number in excess of 2005 digits will be in the test data, ie. F(20) = 66526 has 5 digits. 这个大家都懂,是个水题,知道用字符串作加法的这个肯定能懂,从左到右一位一位地加,题目中说答案不会超过2005个数字,而我一个int 存了8位,所以可以确定数组的第二维最多开个255就行,而1维嘛,10的2006次方大约等于2的7000多次方,所以开个8000足够 #include<stdio.h> #include<iostream> #include<algorithm> #include<string.h> int a[8000][255]={{0}}; int main() { for(int i=1;i<=4;i++) { a[i][1]=1; } for(int i=5;i<8000;i++) { for(int j=1;j<255;j++) { a[i][j]+=a[i-1][j]+a[i-2][j]+a[i-3][j]+a[i-4][j]; a[i][j+1]+=a[i][j]/100000000; a[i][j]=a[i][j]%100000000; } } int n; while(scanf("%d",&n)!=-1) { int i; for(i=254;i>=1;i--) { if(a [i]>0) { break; } } printf("%d",a [i]); for(int j=i-1;j>=1;j--) { printf("%.8d",a [j]); } printf("\n"); } } |
相关文章推荐
- HDU 1250 Hat's Fibonacci JAVA大数
- HDU 1250 Hat's Fibonacci
- Hat's Fibonacci HDU - 1250
- hdu-1250-Hat's Fibonacci
- HDU 1250 Hat's Fibonacci
- HDU 1250 Hat's Fibonacci
- hdu-1250-Hat's Fibonacci
- hdu 1250 Hat's Fibonacci
- hdu 1250 Hat's Fibonacci
- Hat's Fibonacci hdu 1250
- HDU 1250 Hat's Fibonacci 大数加法 进位10000000
- HDU1250 Hat's Fibonacci 【大数】
- hdu 1250 Hat's Fibonacci(高精度加法)
- HDOJ 1250 Hat's Fibonacci
- HDU 1250 Hat's Fibonacci(高精度)
- HDU 1250 Hat's Fibonacci (JAVA大数)
- ACM刷题之HDU————Hat's Fibonacci
- HDU1250_Hat's Fibonacci【高精度】【水题】
- hdu 1250 Hat's Fibonacci(大数加法)
- hdu1250-Hat's Fibonacci