高精度加法模板
2017-04-03 21:51
190 查看
高精度就是很长的大数
#include <algorithm>
void add(char a[],char b[],char c[])//a+b=c
{
int i,e,d;
int n,m;
char temp;
n=strlen(a);
m=strlen(b);
for(i=0; i<n/2; i++)
{
temp=a[i];
a[i]=a[n-1-i];
a[n-1-i]=temp;
}//将a倒置,另外倒置可以写成另外的函数以便节省代码量,后面多次调用
for(i=0; i<m/2; i++)
{
temp=b[i];
b[i]=b[m-1-i];
b[m-1-i]=temp;
}//将b倒置
e=0;
for(i=0; i<n&&i<m; i++)
{
d=a[i]-'0'+b[i]-'0'+e;
e=d/10;
c[i]=d%10+'0';
}//进行模拟加法
if(i<m)
{
for(; i<m; i++)
{
d=b[i]-'0'+e;
e=d/10;
c[i]=d%10+'0';
}
}
else
{
for(; i<n; i++)
{
d=a[i]-'0'+e;
e=d/10;
c[i]=d%10+'0';
}
}//如果有一个数的位数较多,特殊处理
if(e) {c[i++]=e+'0';n++;m++;}//处理最后一位可以进位的情况
c[i]=0;
for(i=0; i<max(n,m)/2; i++)
{
temp=c[i];
c[i]=c[max(n,m)-1-i];
c[max(n,m)-1-i]=temp;
}//倒置
//此处添加适用于循环的代码
}
注意,以上模版只可用于一次高精度加法,多次循环需要把a和b数组倒置过来,
n=strlen(a);
m=strlen(b);
for(i=0; i<n/2; i++)
{
temp=a[i];
a[i]=a[n-1-i];
a[n-1-i]=temp;
}//将a倒置
for(i=0; i<m/2; i++)
{
temp=b[i];
b[i]=b[m-1-i];
b[m-1-i]=temp;
}//将b倒置
#include <algorithm>
void add(char a[],char b[],char c[])//a+b=c
{
int i,e,d;
int n,m;
char temp;
n=strlen(a);
m=strlen(b);
for(i=0; i<n/2; i++)
{
temp=a[i];
a[i]=a[n-1-i];
a[n-1-i]=temp;
}//将a倒置,另外倒置可以写成另外的函数以便节省代码量,后面多次调用
for(i=0; i<m/2; i++)
{
temp=b[i];
b[i]=b[m-1-i];
b[m-1-i]=temp;
}//将b倒置
e=0;
for(i=0; i<n&&i<m; i++)
{
d=a[i]-'0'+b[i]-'0'+e;
e=d/10;
c[i]=d%10+'0';
}//进行模拟加法
if(i<m)
{
for(; i<m; i++)
{
d=b[i]-'0'+e;
e=d/10;
c[i]=d%10+'0';
}
}
else
{
for(; i<n; i++)
{
d=a[i]-'0'+e;
e=d/10;
c[i]=d%10+'0';
}
}//如果有一个数的位数较多,特殊处理
if(e) {c[i++]=e+'0';n++;m++;}//处理最后一位可以进位的情况
c[i]=0;
for(i=0; i<max(n,m)/2; i++)
{
temp=c[i];
c[i]=c[max(n,m)-1-i];
c[max(n,m)-1-i]=temp;
}//倒置
//此处添加适用于循环的代码
}
注意,以上模版只可用于一次高精度加法,多次循环需要把a和b数组倒置过来,
n=strlen(a);
m=strlen(b);
for(i=0; i<n/2; i++)
{
temp=a[i];
a[i]=a[n-1-i];
a[n-1-i]=temp;
}//将a倒置
for(i=0; i<m/2; i++)
{
temp=b[i];
b[i]=b[m-1-i];
b[m-1-i]=temp;
}//将b倒置
相关文章推荐
- 高精度之加法模板
- uva 424 Integer Inquiry(高精度加法模板) uva 10106 Product(高精度乘法模板)
- 高精度加法模板
- 高精度加法模板
- 高精度-小数加法【模板】
- 高精度 大数加法 乘法 除法 幂 模板
- 高精度加法模板
- 高精度加法模板
- 模板总结——高精度加法
- 高精度加法模板
- 高精度 大数加法 乘法 除法 模板
- 高精度加法模板
- A+B problem (压8位高精度加法模板)
- 我的高精度加法模板
- 高精度加法与乘法
- 高精度除法模板
- 大整数类-高精度模板
- 梅森素数 乘法换加法取模计算 模板
- 蓝桥杯:基础练习 Huffuman树、FJ的字符串、阶乘计算、高精度加法
- 高精度abcdefg加减乘除模板。