#include<iostream> #include<algorithm> using namespace std; bool cmp(string s1,string s2) { if(s1.size()!=s2.size()) { return s1.size() < s2.size(); } else { for(int i = 0;i < s1.size();i ++) { if(s1[i]!=s2[i]) return s1[i] < s2[i]; } } } int main() { int t; cin >> t; int num = 1; while(t --) { string s1, s2; cin >> s1 >> s2; if(cmp(s1,s2)) { string str; cout << "Case #"<<num++<<":"<<endl; cout << "-"; reverse(s1.begin(),s1.end()); reverse(s2.begin(),s2.end()); int k = 0; for(int i = 0;i < s2.size();i ++) { k = s2[i]-'0' - k; if(i<s1.size()) k -= (s1[i] - '0'); str += char((k+10)%10+'0'); if(k < 0) k = 1; else k = 0; } while(str.size()>1&&str.back()=='0') str.pop_back(); reverse(str.begin(),str.end()); cout << str << endl; } else { string str; reverse(s1.begin(),s1.end()); reverse(s2.begin(),s2.end()); cout << "Case #"<<num++<<":"<<endl; int k = 0; for(int i = 0;i < s1.size();i ++) { k = s1[i]-'0' - k; if(i<s2.size()) k -= (s2[i] - '0'); str += char((k+10)%10+'0'); if(k < 0) k = 1; else k = 0; } while(str.size()>1&&str.back()=='0') str.pop_back(); reverse(str.begin(),str.end()); cout << str << endl; } } } |
Double click to view unformatted code.