高精度之高精乘低精

#include
#include
#include
#include
#include
#include
using namespace std;
struct bignum
{
    int len;
    int num[1000];
}a,b,c;
void  strtobig(string s,bignum &p)
{
 reverse(s.begin(),s.end());
 for(int i=0;i1]=int(s[i]-'0');
 p.len=s.size();
}
void mul1(bignum a,int n,bignum &b)
{
    int len=a.len;
    for(int i=1;i<=len;i++)
    {
        int k=i;
        b.num[i]+=a.num[i]*n;
        while(b.num[k]>=10)
        {
            b.num[k+1]+=b.num[k]/10;
            b.num[k]%=10;
            k++;
        }
        if(k>b.len) b.len=k;
    }
    while(b.num[b.len]==0&&b.len>1) b.len--;
}
int main()
{
    int n;
    string s1;
    cin>>s1>>n;
    b.len=a.len=0;
    strtobig(s1,a);
    memset(b.num,0,sizeof(b.num));
    mul1(a,n,b);
    for(int i=b.len;i>0;i--)
    {
        cout<return 0;
}

你可能感兴趣的:(算法,高精,字符串)