大数运算(减法)
代码
#include#include #include using namespace std; int sum[100000]; int main() { int cnt = 0, i; string a, b, c; cin >> a >> b; if(b > a && a.length() == b.length()) // 如果b大于a交换a和b的值 { cout << '-'; swap(a,b); } if(b.length() > a.length()) { cout << '-'; swap(a,b); } // cout << a << ' ' << b << endl; for(int i = b.length(); i < a.length(); i++) // c中0的个数为a的长度-b的长度 c += '0'; b = c + b; // 把c拼接到b前面 // cout << a << ' ' << b << endl; for(int i = a.length() - 1; i >= 0; i--) { sum[cnt] += int(a[i] - b[i]); while(sum[cnt] < 0) // 借位处理 { sum[cnt] += 10; sum[cnt + 1]--; } cnt++; } for(i = cnt; i >= 0; i--) // 忽略前导0 if(sum[i] != 0) break; for(; i >= 0; i--) cout << sum[i]; if(a == b) // 如果a=b的情况 cout << 0; cout << endl; }
Comments | NOTHING