加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 大数据 > 正文

大数加法 大数乘法

发布时间:2021-03-14 19:44:13 所属栏目:大数据 来源:网络整理
导读:#includeiostream #includestdio.h #includestring.h #define MAXLEN 300 //大数的长度 using namespace std ; int Input( char n[]) //将大数读入的函数 { char s[MAXLEN]; int i,l; for (i = 0 ; i MAXLEN; i++) n[i] = 0 ; if ( scanf ( "%s" ,s) 1 ) ret

#include<iostream>
#include<stdio.h>
#include<string.h>

#define MAXLEN 300//大数的长度

using namespace std;

int Input(char n[])//将大数读入的函数
{
    char s[MAXLEN];
    int i,l;

    for (i = 0; i < MAXLEN; i++)
        n[i] = 0;
    if (scanf("%s",s) < 1) 
        return -1;

    l = strlen(s);
    for (i = 0; i < l; i++) //将输入的大数逆置
        n[i] = s[l - i - 1] - '0';

}
int Print(char n[])
{
    int i;
    for (i = MAXLEN - 1; i > 0; i--)
        if (n[i] != 0) 
            break;
    for (; i >= 0; i--)
        printf("%d",n[i]);
    printf("n");
    return 0;
}

void Add(char a[],char b[],char c[])//大数加法
{
    int i = 0;
    for (i = 0; i < MAXLEN; i++)
        c[i] = a[i] + b[i];
    for (i = 0; i < MAXLEN; i++) //处理进位
    {
        if (c[i] >= 10)
        {
            c[i + 1] += c[i] / 10;
            c[i] = c[i] % 10;
        }
    }
}
void Mul(char a[],char c[])//大数乘法
{
    int i,j;
    int alen = strlen(a),blen = strlen(b);
    for (i = 0; i < MAXLEN; i++) c[i] = 0;
    for (i = 0; i < alen; i++)
        for (j = 0; j < blen; j++) //处理进位
        {
            c[i + j] += a[i] * b[j];
            if (c[i + j] >= 10)
            {
                c[i + j + 1] += c[i + j] / 10;
                c[i + j] %= 10;
            }
        }
}

int main()
{

    char a[MAXLEN],b[MAXLEN],c[MAXLEN];
    Input(a);
    Input(b);
    Add(a,b,c);
    Print(c);
    Mul(a,c);
    Print(c);

    getchar();
    getchar();
    return 0;
}

(编辑:衡阳站长网)

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

    热点阅读