您的位置:首页 > 其它

大整数乘法(非分治算法)

2017-03-26 01:10 197 查看

题目描述

Calculate a*b

输入

Two integer a,b (0<=a,b<=101000)

输出

Output a * b

样例输入

5 7

样例输出

35

#include
#include
#include
const long int N=100000;
using namespace std;

char str1
, str2
;
int num1
, num2
, ans
={0};

int main()
{
gets(str1);
gets(str2);
int m=0,n=0;
while(str1[m])
{
num1[m]=str1[m]-'0';
m++;
}
while(str2
)
{
num2
=str2
-'0';
n++;
}
int up, temp, i, j, k, p;
for(i=m-1, k=0; i>=0; i--, k++)
{
temp=0;
up=0;
for(j=n-1, p=0; j>=0; j--, p++)
{
temp=num1[i]*num2[j]+up+ans[k+p];
ans[k+p]=temp%10;
up=temp/10;
}
if(up>0)
ans[k+p]=up;
}
int len= m*n;
while(!ans[len--]);
for(int i=len+1; i>=0; i--)
cout<
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: