HDU Hat's Fibonacci 结题报告
来源:互联网 发布:eviews3.1怎么导入数据 编辑:程序博客网 时间:2024/05/20 18:16
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
4203968145672990846840663646Note:No generated Fibonacci number in excess of 2005 digits will be in the test data, ie. F(20) = 66526 has 5 digits.
题目要求的就是f[n]=f[n-1]+f[n-2]+f[n-3]+f[n-4],就这样而已,但是因为数字太大了,题目最后也讲了,f[n]不超过2005个数字,2005个数字,那肯定得要用数组进行大数加法运算了,与以前的几乎一样,特别的是如果一个a[i]存一个位,数组也非常大,开不到这么大的数组,所以要一个a[i]存多个数字,想的时候我有担心过多个数字会不会导致存贮的时候顺序改变,例如如果一个a[i]存一个数 ->27+98:
没有任何问题;但是当一个a[i]存2个数字,还是27+98吧:c[0]存25,事实表明输出过程c[1]->c[0]为125,结果同样正确,不用担心a[i]存的数位会不会影响到c[i]中的数字顺序,不应该受到a[i]存一个数字这样情况的影响,下意识认为c[0]应该存放52,理解这一点之后和大数加法就像平时那样做就行了,除此2之外,数组大小也是个问题,由其它结题报告知道,数字超过2005个时候大约有8000个数,也就是要开个一维为8000+的二维数组来存放每个数,打表输出要求的数就OK;
贴代码:
#include<iostream>
using namespace std;
#define mod 100000000
int a[8050][350]={0};
void bignum_add()
{
int k,i,j;
for(i=5;i<8050;i++)
for(j=0;j<350;j++)
{
a[i][j]+=a[i-1][j]+a[i-2][j]+a[i-3][j]+a[i-4][j];
if(a[i][j]>mod)
{
a[i][j+1]=a[i][j]/mod;
a[i][j]%=mod;
}
}
}
void main()
{
int i,n,j;
a[1][0]=1;
a[2][0]=1;
a[3][0]=1;
a[4][0]=1;
bignum_add();
while(cin>>n)
{
for(i=349;i>=0;i--)
if(a[n][i]!=0)
break;
printf("%d",a[n][i]);
for(j=i-1;j>=0;j--)
printf("%08d",a[n][j]);
cout<<endl;
}
}
- HDU 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
- hdu 1250 Hat's Fibonacci
- hdu-1250-Hat's Fibonacci
- Hdu---Hat's Fibonacci---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
- hdu 1250 Hat's Fibonacci
- hdu-1250-Hat's Fibonacci
- HDU 1250 Hat's Fibonacci
- ApplicationEvents1ShortCut
- 多选框全选/取消jQuery 简单实现
- 去除噪声总结
- Hibernate事务与并发问题处理(乐观锁与悲观锁)
- Func<TResult>委托,Action 委托,Tuple 类
- HDU Hat's Fibonacci 结题报告
- eoe Android 特刊01-28专辑
- Android控件动态设置style的问题
- komodo 配置
- Ubuntu配置Wine教程
- S5pc100 的linux 触摸屏驱动移植(linux 2.6.35.13内核)
- 今日有感
- android 数据库操作
- IIS PHP file_exists失败,require_once也全部失败