高精度 加法 (大数加大数)
#include <iostream>
#include <vector>
using namespace std;
int main ()
{
string s1,s2;
cin>>s1;
cin>>s2;
vector<int> v1,v2,v3;
int i;
for(i=s1.size()-1;i>=0;i--)
{
v1.push_back(s1[i]-48);
}
for(i=s2.size()-1;i>=0;i--)
{
v2.push_back(s2[i]-48);
}
int t=0;
for(i=0;i<v1.size()||i<v2.size();i++)
{
if(i<v1.size())t+=v1[i];
if(i<v2.size())t+=v2[i];
v3.push_back(t%10);
t/=10;
}
if(t)v3.push_back(1);
vector<int>::iterator it=v3.end()-1;
for(;it>=v3.begin();it--)
{
cout<<*it;
}
return 0;
}
高精度 乘法 (大数乘小数)
#include <iostream>
#include <vector>
using namespace std;
int main ()
{
vector <int> v1,v2;
string s;
int n;
cin>>n;
cin>>s;
int i;
for(i=(int)s.size()-1; i>=0; i--)
{
v1.push_back(s[i]-48);
}
int t=0;
for(i=0; i<(int)v1.size()||t; i++)
{
if(i<(int)v1.size())t+=v1[i]*n;
v2.push_back(t%10);
t/=10;
}
vector<int> ::iterator it;
it=v2.end()-1;
for(; it>=v2.begin(); it--)
{
cout<<*it;
}
return 0;
}