hdu 1250 Hat's Fibonacci
2012-07-22 09:24
316 查看
Hat'sFibonacci
TimeLimit:2000/1000MS(Java/Others)MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):3726AcceptedSubmission(s):1252
[align=left]ProblemDescription[/align]
AFibonaccisequenceiscalculatedbyaddingtheprevioustwomembersthesequence,withthefirsttwomembersbeingboth1.
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)
Yourtaskistotakeanumberasinput,andprintthatFibonaccinumber.
[align=left]Input[/align]
Eachlinewillcontainanintegers.Processtoendoffile.
[align=left]Output[/align]
Foreachcase,outputtheresultinaline.
[align=left]SampleInput[/align]
100
[align=left]SampleOutput[/align]
4203968145672990846840663646 Note: NogeneratedFibonaccinumberinexcessof2005digitswillbeinthetestdata,ie.F(20)=66526has5digits.
[align=left]Author[/align]
戴帽子的
[align=left]Recommend[/align]
Ignatius.L
这道题着实花了不少时间,倒不是花在解题思路上,而是花在了调试上面。总共提交了8次,算是最失败的了。
因为我是用打表,第一次,一个数组元素存一个十进制数,MLE。
换成了一个元素存5个十进制数,因为数组开大了点,又一次MLE。
而后两次runtimeerror就特别怨了,也是在这花了超多是间,因为根本就看不到还有一个d%
另外需要注意的就是存五个数时,第一个需要特别处理。切记
ViewCode
Problem:1250(Hat'sFibonacci)JudgeStatus:RuntimeError
(ACCESS_VIOLATION)
RunId:6290695Language:C++Author:
NealGavin
CodeRenderStatus:RenderedByHDOJC++CodeRenderVersion0.01Beta
#include<cstring>
#include<cstdio>
#include<algorithm>
usingnamespacestd;
constintMAX=800;
intf[MAX][MAX];
voidgoon()
{
intd=0;//余数
for(inti=5;i<MAX;i++)
{
for(intj=1;j<=f[i-1][0];j++)
{
f[i][j]=f[i-1][j]+f[i-2][j]+f[i-3][j]+f[i-4][j]+d;
d=f[i][j]/10;
f[i][j]%=10;f[i][j]%=10;
}
f[i][0]=f[i-1][0];
while(d)
{
f[i][++f[i][0]]=d%10;
d/=10;
}
}
}
intmain()
{
//freopen("2.out","w",stdout);
memset(f,0,sizeof(f));
for(inti=1;i<5;i++)
{
f[i][0]=f[i][1]=1;
}
goon();
intm;
while(scanf("%d",&m)!=EOF)
{
for(inti=f[m][0];i>0;i--)
printf("%d",f[m][i]);
printf("\n");
//printf("A%d\n",f[m][0]);
}
}
#include<cstring> #include<cstdio> #include<algorithm> usingnamespacestd; constintMAX=800; intf[MAX][MAX]; voidgoon() { intd=0;//余数 for(inti=5;i<MAX;i++) { for(intj=1;j<=f[i-1][0];j++) { f[i][j]=f[i-1][j]+f[i-2][j]+f[i-3][j]+f[i-4][j]+d; d=f[i][j]/10; f[i][j]%=10;就是这行在编译器里一直没发现哎痛苦——》f[i][j]%=10; } f[i][0]=f[i-1][0]; while(d) { f[i][++f[i][0]]=d%10; d/=10; } } } intmain() { //freopen("2.out","w",stdout); memset(f,0,sizeof(f)); for(inti=1;i<5;i++) { f[i][0]=f[i][1]=1; } goon(); intm; while(scanf("%d",&m)!=EOF) { for(inti=f[m][0];i>0;i--) printf("%d",f[m][i]); printf("\n"); //printf("A%d\n",f[m][0]); } }
ViewCode
Problem:1250(Hat'sFibonacci)JudgeStatus:WrongAnswer
RunId:6291203Language:C++Author:
NealGavin
CodeRenderStatus:RenderedByHDOJC++CodeRenderVersion0.01Beta
#include<cstring>
#include<cstdio>
#include<algorithm>
usingnamespacestd;
constintMAX=8001;
constintmod=100000;
intf[MAX][600];
voidgoon()
{
intd=0;//余数
for(inti=5;i<MAX;i++)
{
for(intj=1;j<=f[i-1][0];j++)
{
f[i][j]+=f[i-1][j]+f[i-2][j]+f[i-3][j]+f[i-4][j]+d;
if(f[i][j]>=mod)
{
d=f[i][j]/mod;
f[i][j]%=mod;
}
else
d=0;
}
f[i][0]=f[i-1][0];
while(d)
{
f[i][++f[i][0]]=d%mod;
d/=mod;
}
}
}
intmain()
{
//freopen("2.out","w",stdout);
memset(f,0,sizeof(f));
for(inti=1;i<5;i++)
{
f[i][0]=f[i][1]=1;
}
goon();
intm;
while(scanf("%d",&m)!=EOF)
{
for(inti=f[m][0];i>0;i--)
printf("%05d",f[m][i]);
printf("\n");
//printf("A%d\n",f[m][0]);
}
}
#include<cstring> #include<cstdio> #include<algorithm> usingnamespacestd; constintMAX=8001; constintmod=100000; intf[MAX][600]; voidgoon() { intd=0;//余数 for(inti=5;i<MAX;i++) { for(intj=1;j<=f[i-1][0];j++) { f[i][j]+=f[i-1][j]+f[i-2][j]+f[i-3][j]+f[i-4][j]+d; if(f[i][j]>=mod) { d=f[i][j]/mod; f[i][j]%=mod; } else d=0; } f[i][0]=f[i-1][0]; while(d) { f[i][++f[i][0]]=d%mod; d/=mod; } } } intmain() { //freopen("2.out","w",stdout); memset(f,0,sizeof(f)); for(inti=1;i<5;i++) { f[i][0]=f[i][1]=1; } goon(); intm; while(scanf("%d",&m)!=EOF) { for(inti=f[m][0];i>0;i--)就是这没处理,WA
printf("%05d",f[m][i]); printf("\n"); //printf("A%d\n",f[m][0]); } }
#include<cstring>
#include<cstdio>
#include<algorithm>
usingnamespacestd;
constintMAX=8033;
constintmod=100000;
intf[MAX][800];
voidgoon()
{
intd=0;//进位
for(inti=5;i<MAX;i++)
{
for(intj=1;j<=f[i-1][0];j++)
{
f[i][j]=f[i-1][j]+f[i-2][j]+f[i-3][j]+f[i-4][j]+d;
if(f[i][j]>=mod)
{
d=f[i][j]/mod;
f[i][j]%=mod;
}
else
d=0;
}
f[i][0]=f[i-1][0];
while(d)
{
f[i][++f[i][0]]=d%mod;
d/=mod;
}
}
}
intmain()
{
//freopen("2.out","w",stdout);
memset(f,0,sizeof(f));
for(inti=1;i<5;i++)
{
f[i][0]=f[i][1]=1;
}
goon();
intm;
while(scanf("%d",&m)!=EOF)
{
printf("%d",f[m][f[m][0]]);
for(inti=f[m][0]-1;i>0;i--)
printf("%05d",f[m][i]);
printf("\n");
//printf("A%d\n",f[m][0]);
}
}
相关文章推荐
- hdu 1250 Hat's Fibonacci
- hdu 1250 Hat's Fibonacci
- HDU 1250 - Hat's Fibonacci(大数斐波那契)
- HDU 1250 Hat's Fibonacci (JAVA大数)
- HDU 1250 Hat's Fibonacci 大数加法 进位10000000
- HDU 1250 Hat's Fibonacci
- hdu-1250-Hat's Fibonacci(大数问题)
- hdu1250-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 (Java大数,类似Fib数,有个坑!!)
- HDU 1250 Hat's Fibonacci(Java大数相加)+讲解
- HDU 1250-Hat's Fibonacci
- Hat's Fibonacci-hdu-1250
- HDU 1250 Hat's Fibonacci
- hdu1250 Hat's Fibonacci(高精度加)
- hdu 1250 Hat's Fibonacci (Java大数)