首页 > 其他 > 详细

模拟,大整数加法

时间:2016-03-14 21:54:54      阅读:288      评论:0      收藏:0      [点我收藏+]

题目链接:http://poj.org/problem?id=2602

http://poj.org/problem?id=1503

#include <stdio.h>
#include <string.h>
#include <iostream>
#define Max 110

using namespace std;

int temp[Max];
int sum[Max];

int main()
{
    memset(sum,0,sizeof(sum));

    char tmp_string[Max];

    while(scanf("%s",tmp_string),strcmp(tmp_string,"0"))
    {
        _strrev(tmp_string);

        memset(temp,0,sizeof(temp));
        int len=strlen(tmp_string);
        for(int i=0; i<len; i++)
            temp[i]=tmp_string[i]-0;
        for(int i=0; i<105; i++)
        {
            sum[i]=sum[i]+temp[i];
        }
        for(int i=0; i<105; i++)
        {
            if(sum[i]>9)
            {
                sum[i]=sum[i]-10;
                sum[i+1]++;
            }
        }
    }
    int pos=0;
    for(int i=104;i>=0;i--)
    {
        if(sum[i]!=0)
        {
            pos=i;
            break;
        }
    }
    for(int i=pos;i>=0;i--)
        printf("%d",sum[i]);
    //puts("");
    return 0;
}
#include <stdio.h>
#include <string.h>
#define Max 1000005

int a[Max];
int b[Max];
int sum[Max];

int main()
{
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    memset(sum,0,sizeof(sum));
    int N;
    scanf("%d",&N);
    getchar();
    for(int i=N-1; i>=0; i--)
    {
        a[i]=getchar()-0;
        getchar();
        b[i]=getchar()-0;
        getchar();
        //scanf("%d%d",&a[i],&b[i]);
    }
    for(int i=0; i<N; i++)
    {
        sum[i]=a[i]+b[i];
    }
    for(int i=0; i<N; i++)
    {
        if(sum[i]>9)
        {
            sum[i]=sum[i]-10;
            sum[i+1]++;
        }
    }
    if(sum[N])
        printf("%d",sum[N]);
    for(int i=N-1; i>=0; i--)
    {
        //printf("%d",sum[i]);
        putchar(sum[i]+0);
    }
    return 0;
}

 

模拟,大整数加法

原文:http://www.cnblogs.com/TreeDream/p/5277167.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!