A*B 大数
/*A*B*/ ? /* void mul(char*a,char*b) { ?int i,blen; ?? int *c; ?? char *ret; ??? alen=strlen(a); ??? blen=strlen(b); ??? ?c=(int*)malloc(sizeof(int)*(alen+blen)); ?for(i=0;i<alen+blen;i++) ????? c[i]=0; ? ? for(i=0;i<alen;i++) ?? ?for(j=0;j<blen;j++) ?? ?? c[i+j+1]+=(a[i]-'0')*(b[i]-'0');? ??? ???for(i=alen+blen-1;i>=0;i--) ??? { ????? if(c[i]>9) ????? { ???? ?c[i-1]+=c[i]/10; ???? ?c[i]%=10; ????? } ?????? } ???? ?????? i=0; ?????? while(c[i]==0)//跳过头部的0 ???????? i++; ????? ????? ret=(char*)malloc(sizeof(char)*(alen+blen)); ???????? for(j=0;i<alen+blen;i++,j++) ?????????? ret[j]=c[i]+'0'; ?????????? ret[j]=' '; ???? free(c); ???? for(i=0;i<alen+blen;i++) ??? printf("%c",ret[i]); ??? printf("n"); ???free(ret); } int main() { ?char *a,*b; ?a=(char*)malloc(sizeof(char)*M); ?b=(char*)malloc(sizeof(char)*M); ?int T; ?scanf("%d",&T); ?while(T--) ?{ ??scanf("%s%s",b); ??mul(a,b); ??free(a); ??free(b);? ?} ?return 0; } */ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |