POJ 2389 Bull Math --from lanshui_Yang
问题大意就不多说,就是大数乗算,直接模拟..
具体的な説明はコードを見てください.
具体的な説明はコードを見てください.
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
char a[1000],b[1000];
int sum[1000600];
int main()
{
cin>> a >> b;
memset(sum,0,sizeof(sum));
int i,j;
int la = strlen (a);
int lb = strlen (b);
int c ,m;
for(i=lb-1;i>=0;i--)
{
c = 0; // c
m = lb-1-i;
for(j=la-1;j>=0;j--)
{
int tmp1 = a[j]-'0';
int tmp2 = b[i]-'0';
sum[m] =sum[m]+ c + (tmp1*tmp2) % 10;
c = (tmp1*tmp2) / 10 + sum[m] /10; // : sum[m] 10 , 。。
sum[m] %= 10;
m++;
}
if(c>0) // : , , 20 * 50 ,
sum[m]+=c;
}
int pan = 0;
for(i=999999;i>=0;i--) // 0
{
if(sum[i]!=0)
{
pan =1;
break;
}
}
if(pan ==0)
printf("0");
else
for(j = i;j>=0;j--)
{
printf("%d",sum[j]);
}
printf("
");
return 0;
}