大数乘加小数模板

//大数乘小数

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';



}

 

你可能感兴趣的:(模板)