Run ID 作者 问题 语言 测评结果 时间 内存 代码长度 提交时间
15554 马德理666 高精度减法 C++ 通过 0 MS 268 KB 830 2023-04-23 22:29:58

Tests(5/5):


#include<bits/stdc++.h> using namespace std; string s1, s2; int a[10090], b[10090], c[10090]; int main() { //1.输入 cin >> s1 >> s2; int len1 = s1.size(), len2 = s2.size(); //第1个数比第2个数小 if(len1 < len2 || len1 == len2 && s1 < s2) { cout <<"-"; swap(s1, s2); swap(len1, len2); } //2.转换 for (int i = 0; i < len1; i++) { a[len1 - 1 - i] = s1[i] - '0'; } for (int i = 0; i < len2; i++) { b[len2 - 1 - i] = s2[i] - '0'; } //3.计算 for (int i = 0; i < len1; i++) { if(a[i] < b[i]) { c[i] = a[i] + 10 - b[i]; a[i + 1] = a[i + 1] - 1; }else{ c[i] = a[i] - b[i]; } } //4.去除前导0 while(c[len1 - 1] == 0 && len1 - 1 != 0) { len1--; } //5.输出 for (int i = len1 - 1; i >= 0; i--) { cout << c[i]; } return 0; }


测评信息: