首页 > 其他 > 详细

高精度

时间:2017-12-15 22:00:17      阅读:184      评论:0      收藏:0      [点我收藏+]

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;
}

 

高精度

原文:http://www.cnblogs.com/wyfwey/p/8044948.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!