问题标题: 酷町堂:1096 a+b

0
0

0
已采纳
郑怡翔
郑怡翔
初级天翼
初级天翼

给你个高精度模板,自己改可以吗?

郑怡翔在2018-08-10 20:49:21追加了内容
函数体:
int a[100010],b[100010],c[100010];
string s1,s2;
void jiafa()
{
	c[0]=max(a[0],b[0]);
	int h,jw=0;
	for(int i=1;i<=c[0];i++)//加法
	{
		h=a[i]+b[i]+jw;
		c[i]=h%10;
		jw=h/10;
	}
	if(jw!=0)//判断位数
	{
		c[0]++;
		c[c[0]]=jw;
	}
}
	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';
	jiafa();//做加法
	for(int i=c[0];i>=1;i--)//倒序输出
		cout<<c[i]; 

 

郑怡翔在2018-08-10 20:50:09追加了内容

模板够多了,再多就整段代码了,我可不想被举报!!!

别举报,我没有整段代码!!!

0
张舒斌
张舒斌
中级光能
中级光能

先用函数写高精度加法的函数

然后在主函数里反复调用,

记得每次运算后都得清零

0
0
袁翊凡
袁翊凡
新手光能
新手光能

这题要用高精度,可惜我不会。

0
赵逸凡
赵逸凡
初级启示者
初级启示者

void Plus()
{ w[0]=max(c[0],d[0]);
    int jw=0,h;
    for(int i=1;i<=w[0];i++)
    {
        h=jw+c[i]+d[i];
        w[i]=h%10;
        jw=h/10;
    }
    if(jw!=0)
    {
        w[0]++;
        w[w[0]]=jw;
    }
}
int main()
{
    cin>>a>>b;
    c[0]=a.size();d[0]=b.size();
    for(int i=1;i<=c[0];i++)c[i]=a[c[0]-i]-'0';
    for(int i=1;i<=d[0];i++)d[i]=b[d[0]-i]-'0';
    Plus();
    for(int i=w[0];i>=1;i--)
    {
        cout<<w[i];
    }
    return 0;
}

內似部分代码,自己改。

0
王子凡
王子凡
高级光能
高级光能

这题要用高精度,

书上应该有,我忘了。。。。。。

我要回答