文章

25

粉丝

364

获赞

8

访问

220.6k

头像
大整数加法(C)
P1474 武汉大学2018年机试题
发布于2021年1月27日 21:20
阅读数 8.0k

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


typedef struct 
{
    char num[1001];//从低位到高位存储
    int n;//有多少位
}BigInteger;


//对调位置,使按低位到高位存储
void Reverse(BigInteger *BI)
{
    char tmp;
    for (int i = 0; i < BI->n; i++)
    {
        BI->num[i]-='0';//化为整形
    }
    
    for (int i = 0; i < BI->n/2; i++)
    {
        tmp=BI->num[i];
        BI->num[i]=BI->num[BI->n-i-1];
        BI->num[BI->n-i-1]=tmp;
    }
    return;
}


//相加的结果存放在augend
void Add(BigInteger *augend,BigInteger *addend)
{
    char flag=0;//进位标志
    char res;
    for (int i = 0; i < addend->n; i++)
    {
        res=augend->num[i]+addend->num[i]+flag;
        augend->num[i]=res%10;
        flag=res/10;
    }
    if (flag)
    {
        augend->num[augend->n++]=1;
    }
    
    return;
}

//输出结果
void Output(BigInteger *res)
{
    for (int i = res-...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发