|
- #include<iostream>
- using namespace std;
- string s1,s2,s3;
- int i,j,x1,x2,x3;
- int l1,l2;
- int main()
- {
- cin>>s1>>s2;
- ///用字符串的唯一目的就是读入方便
- bool b1=s1.size()<s2.size();
- bool b2=(s1.size()==s2.size() && s1<s2);
- if (b1||b2) ///大小判断,输出负号
- {
- swap(s1,s2);
- cout<<'-';
- }
-
- for (i=1; i<=l1-l2; i++) s2='0'+s2;
- ///短的前面添0以便对齐
- ///cout<<s1<<endl<<s2; 输出检查
- j=0; ///进位
- for (i=l1-1; i>=0; i--)
- ///从右往左加
- {
- x1=s1[i]-'0';///字符变数字
- x2=s2[i]-'0';
- x3=x1-x2-j;
- if(x3<0)(j=1,x3+=10);///进位处理
- else (j=0);
- s3=char(x3+'0')+s3;
- ///数字变字符并加在结果左边
- }
- while (s3[0]=='0' && s3.size()>1) s3.erase(0,1);
- ///去掉前面的0,最后一个0不去
- cout<<s3;
- return 0;
- }
复制代码 |
|