输出Fibonacci数列中的前N项(从2开始输出的头3个数0 1 1 没有输出)
程序代码:#include <stdio.h>
#define max 50
void char_add(char* a,char* b,char* c)
{
int ia[max]={0};
int ib[max]={0};
int ic[max]={0};
int flag=0,flag2=0;
int i,j;
for(i=0;i<max;i++)
{
if(a[i]=='\0') ia[i]=0; else ia[i]=a[i]-'0';
if(b[i]=='\0') ib[i]=0; else ib[i]=b[i]-'0';
}
//加法运算这个循环没啥问题了,不需要再改进了
for(i=max-1;i>=0;i--)
{
ic[i]=ia[i]+ib[i]+flag;
if(ic[i]>9) {flag=1;ic[i]-=10;} else flag=0;
}
for(j=0;j<max;j++) {c[j]=ic[j]+'0';}
c[j]='\0';
}
int main()
{
char a[max]={'\0'};
char b[max]={'\0'};
char c[max]={'\0'};
int i,j;
a[max-1]='1';
b[max-1]='1';
j=0;
while(j<48)
{
char_add(a,b,c);
for(i=0;i<max;i++)
{
a[i]=b[i];
b[i]=c[i];
}
j++;
printf("%s\n",c);
}
return 0;
}
[ 本帖最后由 wp231957 于 2012-12-6 16:02 编辑 ]









