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

大数相乘

发布时间:2020-12-14 03:04:15 所属栏目:大数据 来源:网络整理
导读:大数乘法的实现也比较容易理解,相信看了下面的代码,细心分析下就知道了,具体也就不作什么详细分析了。 ==+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++== ? ? #includest

大数乘法的实现也比较容易理解,相信看了下面的代码,细心分析下就知道了,具体也就不作什么详细分析了。

==+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==

?

?

#include<stdio.h>
#include<string.h>

int main()
{
	char a[100],b[100];
	int ans[200],res[100][100]={0};     //这里一定要全部初始化为0
	int sum=0,i,j,k=0,t,alen,blen;
	scanf("%s%s",&a,&b);
	alen=strlen(a);
	blen=strlen(b);
	//将a中每位数与b中每位数相乘,下面将结果存入数组中
	for(i=0;i<alen;i++)
		for(j=0;j<blen;j++)
		{
			res[i][j]=(a[i]-48)*(b[j]-48);
		}
	//计算res右下半个三角数的和
	for(i=alen-1;i>=0;i--)
	{
		for(j=blen-1;j>=0;j--)
			sum+=res[i+blen-1-j][j];
		ans[k]=sum%10;
		k++;
		sum/=10;
	}
    //计算res左上半个三角数的和
	for(i=blen-2;i>=0;i--)
	{
		for(j=0;j<=i;j++)
			sum+=res[i-j][j];
		ans[k]=sum%10;
		k++;
		sum/=10;
	}
	if(sum)
	{
		ans[k]=sum;
		k++;
	}
	//输出结果
	printf("ans = ");
	for(t=k-1;t>=0;t--)
		printf("%d",ans[t]);
	printf("n");
	return 0;
}

(编辑:李大同)

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

    推荐文章
      热点阅读