问题标题: 酷町堂:高精度加法

0
0

0
已采纳
陈喆鹏
陈喆鹏
资深光能
资深光能
string s1,s2; 
    int i; 
    cin>>s1>>s2; 
    a[0]=s1.length(); 
    for(i=1;i<=a[0];i++) a[i]=s1[a[0]-i]-'0';
    b[0]=s2.length(); 
    for(i=1;i<=b[0];i++) b[i]=s2[b[0]-i]-'0'; 
    he=(a[0]>b[0]?a[0]:b[0]); 
    for(i=1;i<=he;i++) 
    { 
        a[i]+=b[i]; 
        a[i+1]+=a[i]/10;
        a[i]%=10; 
    } 
    he++; 
    while(a[he]==0&&he>1) he--; 
    for(i=he;i>=1;i--) cout<<a[i]; 
    return 0;
0
0
傅文彬
傅文彬
新手天翼
新手天翼
 

#include<iostream>

 

#include<algorithm>

 

#include<cstdio>

 

#include<cstring>

 

using namespace std;

 

int w[1000010],a[1000010],b[1000010];

 

void he()

 

{

 

w[0]=max(a[0],b[0]);

 

int jw=0,h;

 

for(int i=1;i<=w[0];i++)

 

{

 

h=a[i]+b[i]+jw;

 

w[i]=h%10;

 

jw=h/10;

 

}

 

if(jw!=0)

 

{

 

w[0]++;

 

w[w[0]]=jw;

 

}

 

}

 

int main()

 

{

 

char s1[1000010],s2[1000010];

 

cin>>s1>>s2;

 

a[0]=strlen(s1);

 

b[0]=strlen(s2);

 

for(int i=1;i<=a[0];i++)

 

a[i]=s1[a[0]-i]-'0';

 

for(int i=1;i<=b[0];i++)

 

b[i]=s2[b[0]-i]-'0';

 

he();

 

for(int i=w[0];i>=1;i--)cout<<w[i];

 

return 0;

 

}

0
0
0
黄品翔
黄品翔
初级光能
初级光能

楼上代码都是对的!!!

我要回答