高精度减法
实现步骤
- 判断输入的两个字符串大小,若第一个字符串字典序小于第二个字符串字典序,两者交换,我们要保证第一个字符串(作为被减数)要大于第二个字符串(减数)。
- 将字符串转换成整型数组,整型数组下标值从1开始。
- 数组一中的每个元素减去数组二中的每个元素,若数组一种的第i个元素小于数组二种的第i个元素,数组一第i个元素加10,数组一第i+1个元素减1。
- 判断数组尾部元素是否为0,若为0且数组长度大于1,数组长度减1.
代码实现
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
string str1,str2;
int a[250],b[250],c[250];
int len1,len2,len;
bool cmp(string s1,string s2){
return s1 > s2;
}
int main(){
cin >> str1 >> str2;
len1 = int(str1.size()), len2 = int(str2.size());
if(!cmp(str1,str2)){ //如果str1字典序小于str2字典序,交换str1和str2。
string temp = str1;
str1 = str2;
str2 = temp;
cout << "-";
}
len1 = int(str1.size()), len2