基础算法 792.高精度减法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #include<bits/stdc++.h> using namespace std; bool cmp(vector< int > &A,vector< int > &B){ if (A.size()!=B.size()) return A.size()>B.size(); for ( int i=A.size();i>=0;--i){ if (A[i]!=B[i]) return A[i]>B[i]; } return true ; } vector< int > sub(vector< int > &A, vector< int >&B){ vector< int > C; int t=0; for ( int i=0;i<A.size();++i){ t = A[i] - t; if (i < B.size()) t = t - B[i]; C.push_back((t+10)%10); if (t<0)t=1; else t=0; } while (C.size()>1&&C.back()==0)C.pop_back(); return C; } int main(){ vector< int > A, B; string a, b; cin>>a>>b; for ( int i=a.size()-1;i>=0;--i)A.push_back(a[i]- '0' ); for ( int i=b.size()-1;i>=0;--i)B.push_back(b[i]- '0' ); if (cmp(A, B)){ vector< int > C = sub(A, B); for ( int i=C.size()-1;i>=0;--i) printf ( "%d" ,C[i]); } else { vector< int > C = sub(B, A); printf ( "-" ); for ( int i=C.size()-1;i>=0;--i) printf ( "%d" ,C[i]); } return 0; } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!