hdu 1715 大菲波数
2012-10-10 22:54
381 查看
题目链接:
代码如下:
代码如下:
#include<iostream> #include<cstring> #include<stdlib.h> using namespace std; struct node { char s[1000]; }f[1001]; int a[1000],b[1000],c[1000]; void init() { int alen,blen,len,k,i,j; memset(f[1].s,0,sizeof(f[1].s)); memset(f[2].s,0,sizeof(f[2].s)); strcpy(f[1].s,"1"); strcpy(f[2].s,"1"); for(i=3;i<=1000;i++) { memset(f[i].s,0,sizeof(f[i].s)); } for(i=3;i<=1000;i++) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); alen=strlen(f[i-1].s); blen=strlen(f[i-2].s); for(j=0;j<alen;j++) a[j]=f[i-1].s[j]-'0'; for(j=0;j<blen;j++) b[j]=f[i-2].s[j]-'0'; if(alen>blen) len=alen; else len=blen; k=0; for(j=0;j<len;j++) { c[k]+=a[k]+b[k]; if(c[k]>=10) { c[k]%=10; c[k+1]++; } k++; for(int l=k;c[l]>=10;i++) { c[l]%=10; c[l+1]++; } } for(j=0;j<=k;j++) f[i].s[j]=c[j]+'0'; } } int main(void) { int flag,n,i; init(); scanf("%d",&n); while(n--) { int t; flag=0; scanf("%d",&t); for(i=999;i>=0;i--) { if((f[t].s[i]!='\0'&&f[t].s[i]!='0')||flag) { flag=1; printf("%c",f[t].s[i]); } } printf("\n"); } system("Pause"); return 0; }
相关文章推荐
- hdu-1715-大菲波数
- hdu 1715 大菲波数(Easy)
- 大菲波数_hdu_1715(大数).java
- hdu 1715 大菲波数
- HDU 1715 大菲波数 (java)
- HDU(1715)大菲波数
- hdu 1715 大菲波数
- hdu 1715 大菲波数
- hdu1715 java解大菲波数
- hdu 1715 大菲波数
- HDU - 1715 大菲波数
- hdu 1715 大菲波数 (斐波那契数列 大数问题)
- HDU 1715 大菲波数
- HDU 1715 大菲波数
- hdu-1715-大菲波数(大数问题)
- HDU 1715 大菲波数
- hdu 1715 大菲波数 (大数)
- hdu 1715 大菲波数
- HDU 1715 大菲波数 (Java大法好,C模拟也不要错过)
- HDU - 1715 大菲波数