标签:function ring word for ++ out amp use 遇到的问题
贝贝是学校信息学编程小组的学生,一天,他的数学老师碰到这样一个问题:他想求两个很长的数的乘积,但用普通的计算器无法完成计算,于是他请编程班的贝贝帮忙设计一个“超级计算器”,解决他所遇到的问题。
请你编一程序,帮助贝贝解决这个问题。
两行,分别是两个在10^10~10^100以内的自然数。
一行,为两数相乘的结果。
578474357954668 12435124571
7193400702295541350947428
思路:同加减法,辨别进位。
代码:
//程序名:新的C++程序
//作者:
#include<iostream>
#include<fstream>
#include<algorithm>
#include<string>
using namespace std;
int a[1001],b[1001],c[1000001],la,lb,lc,x;
string ans,a1,b1;
int main()
{
cin>>a1>>b1;
la=a1.size();lb=b1.size();
for(int i=0;i<=la-1;i++)a[la-i]=a1[i]-48;
for(int i=0;i<=lb-1;i++)b[lb-i]=b1[i]-48;
for(int i=1;i<=la;i++)
{
x=0;
for(int j=1;j<=lb;j++)
{
c[i+j-1]=a[i]*b[j]+x+c[i+j-1];
x=c[i+j-1]/10;
c[i+j-1]%=10;
}
c[i+lb]=x;
}
lc=la+lb;
while(c[lc]==0&&lc>1)lc--;
for(int i=lc;i>=1;i--)cout<<c[i];
}
标签:function ring word for ++ out amp use 遇到的问题
原文地址:https://www.cnblogs.com/2006hanziwei/p/10716252.html