加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

A*B 大数

发布时间:2020-12-14 03:07:22 所属栏目:大数据 来源:网络整理
导读:/*A*B*/ #includecstdio #includestring.h #includemalloc.h #includestdlib.h #define M 1000000 int main() { ? int T; ? scanf("%d",T); ? while(T--) ? { ??? ?? ?char *a,*b; ?a=(char*)malloc(sizeof(char)*M); ?b=(char*)malloc(sizeof(char)*M); ???

/*A*B*/
#include<cstdio>
#include<string.h>
#include<malloc.h>
#include<stdlib.h>
#define M 1000000
int main()
{
? int T;
? scanf("%d",&T);
? while(T--)
? {
???
?? ?char *a,*b;
?a=(char*)malloc(sizeof(char)*M);
?b=(char*)malloc(sizeof(char)*M);
??? scanf("%s%s",a,b);
?? int i,j,k,alen,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(a);
?? free(b);
?? free(c);
?????????
??for(i=0;i<alen+blen;i++)
??? printf("%c",ret[i]);
??? printf("n");
???free(ret);?
? }
?return 0;
}

?

/*
#include<cstdio>
#include<string.h>
#include<malloc.h>
#include<stdlib.h>
#define M 1000000

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; } */

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读