Run ID 作者 问题 语言 测评结果 时间 内存 代码长度 提交时间
29842 LeeHao 高精度减法 C++ 通过 0 MS 252 KB 977 2023-11-03 17:52:59

Tests(5/5):


#include <bits/stdc++.h> using namespace std; void sub(int a[], int b[], int c[], int len) { for (int i = 0; i < len; i++) { if (a[i] < b[i]) { a[i] += 10; a[i + 1]--; } c[i] = a[i] - b[i]; } } bool judge(int a[], int b[], int len) { for (int i = len; i >= 0; i--) { if (a[i] < b[i]) return false; // if (a[i] > b[i]) return true; } return true; } int main() { char a[105] = {}, b[105] = {}; cin >> a >> b; int c[106] = {0}, d[106] = {0}; int smt[105] = {0}; for (int i = 0; i < strlen(a); i++) { c[strlen(a) - 1 - i] = a[i] - '0'; } for (int i = 0; i < strlen(b); i++) { d[strlen(b) - 1 - i] = b[i] - '0'; } if (judge(c, d, 104)) sub(c, d, smt, strlen(a)); else { cout << '-'; sub(d, c, smt, strlen(b)); } bool f = true; for (int i = 104; i >= 0; i--) { if (smt[i] != 0 || i == 0) f = false; if ((smt[i] == 0 && !f ) || smt[i] != 0) cout << smt[i]; } return 0; }


测评信息: