这个也没什么好说的,还是回到小学,算一下竖式,模拟一下减的过程,就好了。
Code
#include<bits/stdc++.h>
using namespace std
;
int a
[300],b
[300],c
[300];
string s1
;
string s2
;
int main()
{
cin
>>s1
;
int len1
=s1
.size();
cin
>>s2
;
int len2
=s2
.size();
if(len1
<len2
||(len1
==len2
&&s1
<s2
))
{
printf("-");
swap(s1
,s2
);
swap(len1
,len2
);
}
for(int i
=1;i
<=len1
;i
++) a
[i
]=s1
[len1
-i
]-'0';
for(int i
=1;i
<=len2
;i
++) b
[i
]=s2
[len2
-i
]-'0';
int len
=max(len1
,len2
);
for(int i
=1;i
<=len
;i
++)
{
if(a
[i
]<b
[i
])
{
a
[i
+1]--;
a
[i
]+=10;
}
c
[i
]=a
[i
]-b
[i
];
}
while(c
[len
]==0&&len
>=2) len
--;
for(int i
=len
;i
>=1;i
--) printf("%d",c
[i
]);
return 0;
}
学习厌倦了?点我有更多精彩哦!
转载请注明原文地址: https://mac.8miu.com/read-506489.html