例:加法:a+b
将输入的数字存入字符串类型数据string s1 和 s2
对s1[] s2[] 进行操作
将两个大数a b 分别 倒序 存入两个数组 a[] b[] 中 方便后续计算
int j=1, k=1;
for (int i = s1.size() - 1; i >= 0; i–) a[j++] = s1[i] - ‘0’;
for (int i = s2.size() - 1; i >= 0; i–) b[k++] = s2[i] - ‘0’;
进行加法计算时,要保持最大数在上方,
于是max = max(s1.size() ,s2.size() );
核心计算代码 包括进位 、借位
int c[50000]; 储存最后要输出的结果
int ans=0; 表示要进位的数
加法运算的核心代码
for (int i = 1; i <= max; i++ )
{
ans = ans + (a[i] + b[i]); 每一位上数字相加 可能会超过10 用来计算进位
c[i] = ans % 10; 存入进位数
ans = ans / 10; 缩小,用来下次进位
}
if (ans)
max++;
c[max] = ans; *//**一定要注意最后是否会向前进一*
不知道最后的ans是否为0,所以判断,在c[]最后面加一位