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

大数乘法 (poj2389)

发布时间:2020-12-14 03:07:16 所属栏目:大数据 来源:网络整理
导读:模板 #include iostream#include cstdio#include cstdlib#include cstringusing namespace std;void cheng( char *a,char *b,char *sum ){int temp[2500];int lena,lenb,l;lena=strlen(a);lenb=strlen(b);int len = lena + lenb;for (int i=0;i=len;i++ )tem

模板

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
void cheng( char *a,char *b,char *sum )
{
	int temp[2500];
	int lena,lenb,l;
	lena=strlen(a);
	lenb=strlen(b);
	int len = lena + lenb;
	for (int i=0;i<=len;i++ )
		temp[i]=0;

	for (int i=lena-1;i>=0;i-- )
        {
		     l=lena-1-i;
		for (int j=lenb-1;j>=0;j-- )
		{
			temp[l]=(b[j]-'0')*(a[i]-'0')+temp[l];
			l++;
		}
	}

	while (temp[l]==0)
		l--;
	for (int i=0;i<=l;i++ )
        {
		temp[i+1]+=temp[i]/10;
		temp[i]=temp[i]%10;
	    }
	if ( temp[l+1]!=0 )
		l++;

	while ( temp[l]/10!=0 )
    {
		temp[l+1]+=temp[l]/10;
		temp[l]=temp[l]%10;
		l++;
	}
	if ( temp[l]==0 )
		l--;
    int i=0;
	while ( l>=0 )
	{
		sum[i]=temp[l]+'0';
		i++;
		l--;
	}
	sum[i]='';
}
int main()
{
    char a[10000],b[10000],sum[200000];
    cin>>a>>b;
    cheng(a,b,sum);
    puts(sum);
    return 0;
}

(编辑:李大同)

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

    推荐文章
      热点阅读