码迷,mamicode.com
首页 > 其他好文 > 详细

高精度

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

标签:相加进位   algo   字符串转换   highlight   std   for   style   char s   add   

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

 

高精度

标签:相加进位   algo   字符串转换   highlight   std   for   style   char s   add   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!