JDOJ 1789 : 정밀 A + B

JDOJ 1789 : 정밀 A + B

JDOJ 포털

루오 밸리 P1601 A + B 문제 (고정밀)

루오 구 포털

기술

알려진 두 정수 A, B

A + B를 찾는

입력

첫 번째 행동

두번째 라인 B

산출

행동의 출력 A + B

샘플 입력

5 6

샘플 출력

(11)

힌트

0 <= A, B <= \ (10 ^ {100,000} \)

해결 방법 :

(100) 000 큰 정수의 추가는, 부정적인 생각하지 않는다.

고정밀 보드 제목입니다.

코드의 소위 고정밀 아날로그 또한 내가 고정밀 추가를 달성하는 과정을 설명하고자, 실제로 수직 작동, 질문에 우려 등을위한 보드 :

문자열 읽기

문자열 - 디지털, 뒤쪽에서 전송

수직 동작하는 아날로그 가산기.

선두 0 제거하는 출력된다.

코드에서 영리한 작은 보면 무슨 뜻인지 이해할 수 :

#include<cstdio>
#include<cstring>
#include<algorithm>
#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3)
using namespace std;
const int maxx=1e5+1;
const int INF=1e5;
int a[maxx],b[maxx];
char aa[maxx],bb[maxx];
int main()
{
    scanf("%s%s",aa+1,bb+1);
    int lena=strlen(aa+1);
    int lenb=strlen(bb+1);
    for(int i=1;i<=lena;i++)
        a[i]=aa[lena-i+1]-'0';
    for(int i=1;i<=lenb;i++)
        b[i]=bb[lenb-i+1]-'0';
    int lenc=max(lena,lenb);
    for(int i=1;i<=lenc;i++)
    {
        a[i]+=b[i];
        a[i+1]+=a[i]/10;
        a[i]%=10;
    }
    int t=INF;
    while(!a[t])
    {
        t--;
        if(t==0)
        {
            puts("0");
            return 0;
        }
    }
    for(int i=t;i>=1;i--)
        printf("%d",a[i]);
    return 0;
}

추천

출처www.cnblogs.com/fusiwei/p/11597394.html