4 条题解
-
0
#define mian main #define MAXN 10500 using namespace std; string a,b; int na[MAXN], nb[MAXN], ans[MAXN]; bool pd; int main(){ cin >> a >> b; if((a < b && a.size() == b.size()) || a.size() < b.size()){ swap(a, b); pd = true; } for(int i = a.size(); i > 0; i --)na[i] = a[a.size() - i] - '0'; for(int i = b.size(); i > 0; i --)nb[i] = b[b.size() - i] - '0'; int maxl = max(a.size(), b.size()); for(int i = 1; i <= maxl; i ++) { if(na[i] < nb[i]) { na[i + 1] --; na[i] += 10; } ans[i] = na[i] - nb[i]; } while(ans[maxl] == 0)maxl --; if(pd == true)cout << "-"; for(int i = maxl; i > 0; i --)cout << ans[i]; if(maxl < 1)cout << "0"; return 0; }
来个精简的
-
0
#include<bits/stdc++.h> using namespace std; const int MAXN=10086+10; char sa[MAXN],sb[MAXN],tmp[MAXN]; int a[MAXN],b[MAXN],c[MAXN]; int main(){ cin>>sa>>sb; int la=strlen(sa); int lb=strlen(sb); if(la<lb || ( (la==lb) && strcmp(sa,sb)<0 ) ){ strcpy(tmp,sa); strcpy(sa,sb); strcpy(sb,tmp); swap(la,lb); cout<<"-"; } for(int i=0;i<la;i++) a[la-i]=sa[i]-'0'; for(int i=0;i<lb;i++) b[lb-i]=sb[i]-'0'; int lc=la>lb?la:lb; for(int i=1;i<=lc;i++) { if(a[i]<b[i]){ a[i]+=10; a[i+1]--; } c[i]=a[i]-b[i]; } while(c[lc]==0) lc--; for(int i=lc;i>=1;i--) cout<<c[i]; return 0; }
-
0
# include <bits/stdc++.h> using namespace std; string s1, s2, temp; const int N = 1010; int a[N], b[N], c[N]; void refine(string s, int a[]) { int len = s.size(); int index = 0; for (int i = len - 1; i >= 0; i--) { a[index] = s[i] - '0'; index++; } } void sub(int a[], int b[], int c[]) { for (int i = 0; i < N - 1; i++) { int num = a[i] - b[i]; if (num < 0) { a[i + 1]--; num += 10; } c[i] = num; } } void print(int c[]) { int flag = false; for (int i = N - 1; i >= 0; i--) { if (c[i] != 0) { flag = true; } if (flag || i == 0) { cout << c[i]; } } } bool cmp(string s1, string s2) { int len1 = s1.size(); int len2 = s2.size(); if (len1 != len2) { return len1 < len2; } for (int i = 0; i < len1; i++) { if (s1[i] != s2[i]) { return s1[i] < s2[i]; } } return false; } int main() { cin >> s1 >> s2; if (cmp(s1, s2)) { temp = s1; s1 = s2; s2 = temp; printf("-"); } refine(s1, a); refine(s2, b); sub(a, b, c); print(c); return 0; }
- 1
信息
- ID
- 1100
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 2
- 标签
- 递交数
- 75
- 已通过
- 18
- 上传者