题目标题:
A-B
题目描述:
计算A-B的值
输入描述:
输入两个整数 a,b
输出描述:
输出a-b的结果
样式输入:
7 4
样式输出:
3
#include <iostream> #include <cstdio> #include <cstdlib> #include <stack> #include<vector> using namespace std; void subtract(vector<char>a,vector<char>b){ int temp=0; if(a.size()<b.size()){ cout<<"-"; a.swap(b); } vector<char>::iterator i=a.end()-1; vector<char>::iterator j=b.end()-1; stack<int>c; while(i>=a.begin() && j>=b.begin()){ if(((*i)+temp)>=(*j)){ c.push((*i)+temp-(*j)); temp=0; } else{ c.push((*i)+10-(*j)+temp); temp=-1; } i--;a.pop_back(); j--;b.pop_back(); } while(!a.empty()){ if(((*i)+temp)>=0){ c.push((*i)-'0'+temp); temp=0; } else{ c.push((*i)+10-'0'+temp); } i--;a.pop_back(); } while(!b.empty()){ if(((*j)+temp)>=0){ c.push((*j)-'0'+temp); temp=0; } else{ c.push((*j)+10-'0'+temp); } j--;b.pop_back(); } while(!c.empty()){ cout<<c.top(); c.pop(); } } int main(){ vector<char>a; vector<char>b; char e; char f; while(scanf("%c",&e)){ if(e!=' ') a.push_back(e); if(e==' ') break; } while(scanf("%c",&f)){ if(f!='\n') b.push_back(f); if(f=='\n') break; } subtract(a,b); }利用两个容器以字符动态输入,从两个容器末尾往前通过考虑temp借位依次减并实时输出