Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
330596 田钰皓 【C6-4】高精度减法2 C++ 解答错误 0 1 MS 264 KB 1014 2025-07-10 15:01:37

Tests(0/4):


#include<bits/stdc++.h> using namespace std; int a1[1010],a2[1010],c[1010],l1,l2,l; void sub(){ for(int i=0;i<l;i++){ if(a1[i]<a2[i]){ a1[i+1]--; a1[i]=a1[i]+10; } c[i]=a1[i]-a2[i]; } while(c[l]==0&&l!=0){ l--; } return; } bool check(string s1,string s2){ if(l1>l2) return 0; if(l1<l2) return 1; for(int i=0;i<l;i++){ if(s1[i]<s2[i]) return 1; if(s1[i]>s2[i]) return 0; } return 0; } void sub2(){ for(int i=0;i<l;i++){ c[i]=c[i]+a1[i]+a2[i]; c[i+1]+=c[i]/10; c[i]%=10; } while(c[l]==0&&l!=0){ l--; } for(int i=l;i>=0;i--){ cout<<c[i]; } } int main(){ string s1,s2; cin>>s1>>s2; l1=s1.size(); l2=s2.size(); if(s2[0]=='-'){ s2.erase(0,1); sub2(); return 0; } l=max(l1,l2); if(check(s1,s2)){ cout<<'-'; swap(s1,s2); swap(l1,l2); } for(int i=0;i<l1;i++){ a1[l1-1-i]=s1[i]-'0'; } for(int i=0;i<l2;i++){ a2[l2-1-i]=s2[i]-'0'; } sub(); while(l>=0){ cout<<c[l--]; } return 0; }


测评信息: