#include <iostream>
using namespace std;
int main(){
string s1,s2;
cin >> s1;
cin >> s2;
int a1[210]={0};
int a2[210]={0};
int a3[210]={0};
char flag='+';
if (s1.size()<s2.size() || s1.size()==s2.size() && s1<s2){
swap(s1,s2);
flag='-';
}
//倒序存入
for (int i=0;i<s1.size();i++){
a1[i]=s1[s1.size()-i-1] - '0';
}
for (int i=0;i<s2.size();i++){
a2[i]=s2[s2.size()-i-1] - '0';
}
//借位
for (int i=0;i<s1.size();i++){
if (a1[i]<a2[i]){
a1[i]+=10;
a1[i+1]-=1;
}
a3[i]=a1[i]-a2[i];
}
if (flag=='-'){
cout << flag;
}
//找倒序输出下标
int index=0;
for (int i=s1.size()-1;i>=0;i--){
if (a3[i]!=0){
index=i;
}
break;
}
for (int i=index;i>=0;i--){
cout << a3[i];
}
return 0;
}
原理:小学二年级减法算法
© 版权声明
文章版权归作者所有,请勿转载至任何平台。
THE END
暂无评论内容