hdu 1316 how many fibs
2011-04-26 02:11
489 查看
这道题,没看清题而wrong answer了好多次,原来是上道大数题不同,f[2]=2;悲剧。。
只要在上道题的基础上加个比较函数就可以了。。
View Code
数组开大了点。。其实开到500就可以了....
只要在上道题的基础上加个比较函数就可以了。。
View Code
#include<stdio.h> #include<string.h> #include<stdlib.h> char f[2001][2001]={"1","1","2"}; char sh[2001]; char ch1[2001],ch2[2001]; void sum(char a[ ],char b[ ]) { // printf("%s to %s",a,b); int len1,len2,i,j,k=0,c[2000]; memset(c,0,sizeof(c)); //memset(sh,' ' ,sizeof(sh)); len1=strlen(a),len2=strlen(b); //printf("%d %d",len1,len2); for(i=len1-1;i>=0;i--) c[len1-i-1]=a[i]-48; // printf("\n%d",c[0]); for(j=len2-1;j>=0;j--) c[len2-j-1]+=b[j]-48; // printf("\n%d",c[0]); len1=len1>len2?len1:len2; for(i=0;i<=len1;i++) if(c[i]>9) { c[i+1]+=c[i]/10; c[i]-=10; } j=len1+2; while(!c[j]) j--; // printf("***%d ",j); //for(i=0;i<=j;i++) // printf("Abc:%d ",c[i]); for(i=j;i>=0;i--) sh[k++]=c[i]+48; sh[k]='\0'; // printf("%s\n",sh); } int find(char a[ ],char b[ ]) { int len1,len2; len1=strlen(a); len2=strlen(b); if(len2>len1) return -1; else if(len1>len2) return 1; else return strcmp(a,b); } int main( ) { int i,j,k,N,t,flag,flag2; for(i=3;i<=2000;i++) { sum(f[i-1],f[i-2]); strcpy(f[i],sh); } //scanf("%d",&N); while(scanf("%s%s",ch1,ch2)!=EOF&&(ch1[0]!='0'||ch2[0]!='0')) { k=0,flag=1,flag2=1; t=0;j=0; for(i=1;i<=2000;i++) { if(find(f[i],ch1)>=0&&flag) { t=i;flag=0; } if(find(f[i],ch2)>=0&&flag2) { j=i;flag2=0;break;} } if(strcmp(f[j],ch2)==0) j=j+1; printf("%d\n",j-t); } return 0; }
数组开大了点。。其实开到500就可以了....
相关文章推荐
- HDU-1316 How Many Fibs? 大数、二分问题 (C语言)
- HDU 1316-How Many Fibs?(大数类)
- hdu 1316 How Many Fibs?(Fibonacci+高精度+二分)
- How Many Fibs? HDU - 1316
- hdu 1316 How Many Fibs?
- HDU 1316 -- How Many Fibs?(Java)
- hdu 1316 How many Fibs?(高精度斐波那契数)
- HDU 1316 —How many Fibs?
- hdu 1316 How Many Fibs?
- hdu 1316 How many Fibs?(高精度斐波那契数)
- HDU 1316 How Many Fibs? java大数(水
- HDU 1316 How Many Fibs?(递推,大数相加)
- hdu 1316 How Many Fibs? (模拟高精度)
- hdu 1316 How Many Fibs? (大数问题)
- hdu 1316 How Many Fibs?【JAVA大数】
- HDU 1316 How Many Fibs? (大Fib数,还是Java大法好)
- HDU 1316 How Many Fibs?
- HDU 1316 How Many Fibs?
- HDU1316 How Many Fibs? 【大数】
- hdu 1316 How Many Fibs?【JAVA大数】