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

Num 20 : HDOJ: 题目1402 : A*B ( 大数问题 )

发布时间:2020-12-14 02:26:04 所属栏目:大数据 来源:网络整理
导读:????? 与大数加法类似,大数乘法如下: #includestdio.h #includemath.h #includestring.h#includestdlib.h#includemalloc.h char chara[50010];char charb[50010];int a[50010];int b[50010];int c[100010];int main() {int i,j,lena,lenb;while(gets(chara



????? 与大数加法类似,大数乘法如下:

#include<stdio.h>  
#include<math.h>  
#include<string.h>
#include<stdlib.h>
#include<malloc.h> 
char chara[50010];
char charb[50010];
int a[50010];
int b[50010];
int c[100010];
int main()  
{
	int i,j,lena,lenb;
	while(gets(chara)!=NULL&&gets(charb)!=NULL)
	{
		memset(a,sizeof(a));
		memset(b,sizeof(b));
		memset(c,sizeof(c));
		lena=strlen(chara);lenb=strlen(charb);
		for(j=0,i=lena-1;	i>=0;	i--) a[j++]=chara[i]-'0';		
		for(j=0,i=lenb-1;	i>=0;	i--) b[j++]=charb[i]-'0';
		for(i=0;	i<lena;	i++)
			for(j=0;	j<lenb;	j++)
				c[i+j]=a[i]*b[j];
		for(i=0;	i<100000;	i++)
			if(c[i]>=10)
			{
				c[i+1]+=c[i]/10;
				c[i]=c[i]%10;
			}
		for(i=100000;	(c[i]==0)&&(i>=0);	i--);
		if(i>=0)
			for(;	i>=0;	i--)
				printf("%d",c[i]);
		else printf("0");
		printf("n");
	}
    return 0;  
}

(编辑:李大同)

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

    推荐文章
      热点阅读