输出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 编辑 ]