付翔的专栏
在鄙视中成长 记录成长的点滴
posts - 106,  comments - 32,  trackbacks - 0
http://acm.hdu.edu.cn/showproblem.php?pid=1715
没有什么特别之处 不过因为看错题目 wa 几次了

#include <stdio.h>
#include 
<string.h>
#include 
<stdlib.h>
const int maxn = 2000;
char back[maxn];
char Fibonacci[1000][maxn];
void add(char a[],char b[],char back[])
{
    
int i,j,k,up,x,y,z,l;
    
char *c;
    
if (strlen(a)>strlen(b)) l=strlen(a)+2else l=strlen(b)+2;
    c
=(char *) malloc(l*sizeof(char));
    i
=strlen(a)-1;
    j
=strlen(b)-1;
    k
=0;up=0;
    
while(i>=0||j>=0)
        {
            
if(i<0) x='0'else x=a[i];
            
if(j<0) y='0'else y=b[j];
            z
=x-'0'+y-'0';
            
if(up) z+=1;
            
if(z>9) {up=1;z%=10;} else up=0;
            c[k
++]=z+'0';
            i
--;j--;
        }
    
if(up) c[k++]='1';
    i
=0;
    c[k]
='\0';
    
for(k-=1;k>=0;k--)
        back[i
++]=c[k];
    back[i]
='\0';
}

int main()
{
    
char str1[maxn],str2[maxn];
    
int i,n,num;
    strcpy(Fibonacci[
1],"1");
    strcpy(Fibonacci[
2],"1");
    
for(i = 3; i<= 1000; i ++)
    {
        
//strcpy(str1,Fibonacci[i-1]);
        
//strcpy(str2,Fibonacci[i-2]);
        add(Fibonacci[i-1],Fibonacci[i-2],back);
        strcpy(Fibonacci[i],back);
    }
    scanf(
"%d",&n);
    
while(n--)
    {
        scanf(
"%d",&num);
        printf(
"%s\n",Fibonacci[num]);
    }
    
return 0;
}


posted on 2010-04-21 23:23 付翔 阅读(234) 评论(0)  编辑 收藏 引用 所属分类: ACM 数据结构

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理



<2010年9月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

常用链接

留言簿(2)

随笔分类

随笔档案

文章分类

文章档案

CSDN - 我的blog地址

博客

搜索

  •  

最新评论

阅读排行榜

评论排行榜