高精度加法
#include<iostream>
using namespace std;
string str1, str2;
int main(){
cin >> str1 >> str2;
string str;
int a1 = str1.length();
int a2 = str2.length();
if(a1>a2){
for (int i = a2; i < a1;i++){
str2 = "0" + str2;
}
}else{
for (int i = a1; i < a2;i++){
str1 = "0" + str1;
}
}
cout << str1 << endl;
cout << str2 << endl;
int m = str1.length();
int cf = 0;
int item;
for (int i = m - 1; i >= 0;i--){
item = (str1[i] - '0') + (str2[i] - '0')+cf;
cf = item / 10;
item %= 10;
str = char(item + '0') + str;
}
if(cf!=0){
str = char(cf + '0') + str;
}
cout << str;
}
高精度减法
#include<iostream>
using namespace std;
int main(){
string a, b;
string str;
cin >> a >> b;
int cf = 0;
int item = a.length() - b.length();
int j = b.length() - 1;
for (; j >= 0;j--){
if(a[item+j]<(b[j]+cf)){
str = char(a[item + j] - b[j] - cf + 10 + '0') + str;
cf = 1;
}else{
str = char(a[item + j] - b[j] - cf + '0' ) + str;
cf = 0;
}
}
for (int i = item - 1; i >= 0 ;i--){
if(a[i]-cf<'0'){
str = char(a[i]- cf + 10) + str;
cf = 1;
}else{
str = char(a[i] - cf) + str;
cf = 0;
}
}
cout << str;
}