高精度

Addition

#include<cstdio>
#include<algorithm>
#include<cstdlib>
#include<cstring>
using namespace std;
const int zz=300;
char s1[zz],s2[zz];
int a[zz],b[zz],c[zz];
int main()
{
	int la,lb,lc,m=0;
	scanf("%s",s1);
	scanf("%s",s2);//以字符串形式输入
	la=strlen(s1);
	lb=strlen(s2);//计算加数和被加数的长度
	for(int i=1;i<=la;i++)
		a[i]=s1[la-i]-'0';
	for(int i=1;i<=lb;i++)
		b[i]=s2[lb-i]-'0';//将字符串转换为数,放入数组,倒序以便相加进位
	la>lb? lc=la:lc=lb;
	for(int i=1;i<=lc;i++)
	{
		c[i]=(m+a[i]+b[i])%10;
		m=(m+a[i]+b[i])/10;
	}
	if(m==1)
	{
		lc++;
		c[lc]=1;
	}//进位导致增加一个位数
	for(int i=lc;i>=1;i--)
		printf("%d",c[i]);//倒序输出
	printf("\n");
	return 0;
}

 

posted @ 2017-12-15 21:38  wyfWey  阅读(61)  评论(0编辑  收藏  举报