专项复习1 高精度

高精度

1 高精度加法 LGP1601

啥也不说,直接上代码

#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;
char ans1[505],ans2[505];
int num1[505],num2[505],numans[510];
int len1,len2,lent;
int main(){
    scanf("%s\n%s",ans1+1,ans2+1);
    len1=strlen(ans1+1);
    len2=strlen(ans2+1);
    for(int i=1,j=len1;i<=len1;i++,j--){
        num1[i]=ans1[j]-'0';
    }
    for(int i=1,j=len2;i<=len2;i++,j--){
        num2[i]=ans2[j]-'0';
    }
    lent=max(len1,len2)+1;
    for(int i=1;i<=lent;i++){
        numans[i]=num1[i]+num2[i];
    }
    for(int i=1;i<=lent;i++){
        if(numans[i]>=10){
            numans[i+1]+=(numans[i]/10);
            numans[i]%=10;
        }
    }
    while(numans[lent]==0&&lent>1) lent--;
    for(int i=lent;i>=1;i--){
        printf("%d",numans[i]);
    }
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/liuziwen0224/p/fuxi1.html
今日推荐