hdu_hpu第八次周赛_1002 大菲波数_201310270958

大菲波数

Time Limit : 1000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 95   Accepted Submission(s) : 39

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

Fibonacci数列,定义如下: f(1)=f(2)=1 f(n)=f(n-1)+f(n-2)  n>=3。 计算第n项Fibonacci数值。

Input

输入第一行为一个整数N,接下来N行为整数Pi(1<=Pi<=1000)。

Output

输出为N行,每行为对应的f(Pi)。

Sample Input

5
1
2
3
4
5

Sample Output

1
1
2
3
5

Source

2007省赛集训队练习赛(2)
 
 #include <stdio.h>
#include <string.h> char s[][];
int an1[],an2[],an3[]; int main()
{
int i,j,k,t,N,len,aa;
memset(s,,sizeof(s));
memset(an1,,sizeof(an1));
memset(an2,,sizeof(an2));
memset(an3,,sizeof(an3));
an1[]=;
an2[]=;
an3[]=;
len=;t=;
strcpy(s[],"");strcpy(s[],"");
for(j=;j<=;j++)
{
for(i=;i<=len;i++)
{
an3[i]=an1[i]+an2[i]+t;
if(an3[i]>=)
{
an3[i]-=;
t=;
}
else
t=;
if(i==len&&t==)
len+=;
an1[i]=an2[i];
an2[i]=an3[i];
}
//for(aa=99;(aa >= 0)&&(an3[aa] == 0);aa--);
for(k=,aa=i-;aa >= ;aa--){
s[j][k++]=an3[aa]+'';
//printf("%d",an3[aa]);
}
//printf("\n");
}
scanf("%d",&N);
while(N--)
{
int pi;
scanf("%d",&pi);
printf("%s\n",s[pi]);
}
return ;
}
//在网上找的比较简洁的做法

//大数运算!!
#include"stdio.h"
#include"string.h"
int a[][];
int main()
{
int i,j,k;
int n,t;
int carry;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
memset(a,,sizeof(a));
a[][]=;a[][]=;
for(i=,k=;i<=n;i++)
{
for(j=,carry=;j<=k;j++)
{
a[i][j]=a[i-][j]+a[i-][j]+carry;;
carry=a[i][j]/;
a[i][j]%=;
}
while(carry)//这里容易忽略!!
{
a[i][++k]=carry;
carry/=;
}
}
for(i=k;i>;i--)
printf("%d",a[n][i]);
printf("\n");
}
return ;
}
上一篇:flash bulider 生成app无法安装在xcode模拟器上


下一篇:hdu 1715 大菲波数 高精度和运算,水