加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数乘法,大数×大数字符串版

发布时间:2020-12-14 02:58:01 所属栏目:大数据 来源:网络整理
导读:大数乘大数 #include iostream#include cstdio#include cstringusing namespace std;char * multiply(char *a,char *b,char *c){ int i,j; int righta,rightb,up,jj; int len1 = strlen(a); int len2 = strlen(b); for(i=0 ; i(len1+len2+1) ; i++) c[i] = '

大数乘大数

#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

char * multiply(char *a,char *b,char *c)
{
    int i,j;
    int righta,rightb,up,jj;
    int len1 = strlen(a);
    int len2 = strlen(b);

    for(i=0 ; i<(len1+len2+1) ; i++)
        c[i] = '0';
    jj = up = 0;
    int x,y,z;
    for(righta = len1-1 ; righta>=0 ; righta--)
    {
        j = jj;
        for(rightb = len2-1 ; rightb>=0 ; rightb--,j++)
        {
            x = a[righta]-'0';
            y = b[rightb]-'0';
            z = (c[j]-'0')+x * y + up;
            if(z >= 10)
            {
                up = z/10;
                z = z%10;
                c[j] = z + '0';
            }
            else
            {
                up = 0;
                c[j] = z + '0';
            }
        }

        if(up)
        {
            c[j] = up + '0';
            up = 0;
            j++;
        }
        jj++;
    }
    j--;
    while(c[j] == '0' && j>0) j--;
    c[++j] = 0;
    char ch;
    for(i=0,j--; i<j ; i++,j--)
        ch = c[i],c[i]=c[j],c[j]=ch;
    return c;
}

int main()
{

    char a[110],b[110],c[110];
    FILE *pInput,*pOutput;

    pInput = fopen("in.txt","r");
    pOutput = fopen("out.txt","w");
    while(fscanf(pInput,"%s%s",a,b) == 2)
    {
        fprintf(pOutput,"%sn",multiply(a,b,c));
    }
    fclose(pInput);
    fclose(pOutput);
    return 0;
}
输入文件in.txt,每行两个数字,空格隔开

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读