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

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;
} 
减法
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int c[1000010],a[1000010],b[1000010];
void jian()
{
    c[0]=a[0];
    for(int i=1;i<=c[0];i++)
    {
        if(a[i]<b[i])
        {
            a[i+1]--;
            a[i]+=10;
        }
        c[i]=a[i]-b[i];
    }
    while(c[c[0]]==0) c[0]--;
}
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';
    jian(); 
    for(int i=c[0];i>=1;i--)cout<<c[i];
    return 0;
}
乘法
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int w[1000010],a[1000010],b[1000010];
void he()
{
    int jw;
    for(int i=1;i<=a[0];i++)
    {
        jw=0;
        for(int j=1;j<=b[0];j++)
        {
            w[i+j-1]+=a[i]*b[j]+jw;
            jw=w[i+j-1]/10;
            w[i+j-1]%=10;
        }
        w[i+b[0]]+=jw;
    }
    w[0]=a[0]+b[0];
    while(w[w[0]]==0&&w[0]!=1)w[0]--;
}
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
0
张睿杰
张睿杰
初级天翼
初级天翼

我来补个除法

还有

还有主函数

自己打哦

我要回答