大数乘加小数模板

//大数乘小数
void mult(char c[],int m,char t[])
{
    char s[100];
    int len=strlen(c);
    for(int i=0;i<len;i++)
       s[len-i-1]=c[i]-'0';
    int flag,add=0;
    for(int i=0;i<len;i++)
    {
        int k=s[i]*m+add;
        if(k>=10)
        {
            s[i]=k%10;
            add=k/10;
            flag=1;
        }
        else
        {
            s[i]=k;
            add=0;
            flag=0;
        }
    }
    while(add)
    {
        s[len++]=add%10;
        add/=10;
    }
    for(int i=0;i<len;i++)
      t[len-1-i]=s[i]+'0';
    t[len]='\0';
}
//大数加小数
void addt(char a[],int b,char c[])
{
    int len=strlen(a);
    char s[100];
    for(int i=0;i<len;i++)
      s[len-i-1]=a[i]-'0';
    int add=0;
    for(int i=0;;i++)
    {
        if(i>=len){s[i]=0;len++;}
        int k=s[i]+b%10+add;
        b/=10;
        if(k>=10)
        {
            s[i]=k%10;
            add=k/10;
        }
        else
        {
            s[i]=k;
            add=0;
        }
        if(b==0&&add==0)break;
    }
    for(int i=0;i<len;i++)
       c[len-1-i]=s[i]+'0';
    c[len]='\0';

}
原文地址:https://www.cnblogs.com/kuangbin/p/2645046.html