View Code of Problem 3689

#include<iostream>
#include<string>
using namespace std;

int main() {
	int T; cin >> T;
	int v = 0;
	while (T--) {
		string s1, s2, flag(""); cin>>s1>>s2;
		if (s1.size()<s2.size()||s1.size()==s2.size() && s1 < s2) {
			swap(s1, s2);
			flag = "-";
		}
		int len=s1.size() - s2.size(),i=0, k=0,y;
		for (; i < len; i++)
			s2='0' + s2;
		len = s1.size() - 1;
		for (i = len;i>= 0; i--) {
			y = s1[i]-s2[i] + k;
			if ( y>= 0){
				s1[i]='0'+y;
				k = 0;
			}
			else{
				s1[i] = '0'+y+ 10;
				k = -1;
			}
		}
		for (i = 0; i < len; i++)
			if (s1[0] == '0') s1.erase(0,1);
			else break;
		cout << "Case #"<<++v<<":\n"<<flag<< s1 << endl;
	}
}

Double click to view unformatted code.


Back to problem 3689