高精度减法模板

mac2025-09-13  14

这个也没什么好说的,还是回到小学,算一下竖式,模拟一下减的过程,就好了。

Code

#include<bits/stdc++.h> using namespace std; int a[300],b[300],c[300]; string s1; string s2; int main() { cin>>s1; int len1=s1.size(); cin>>s2; int len2=s2.size(); if(len1<len2||(len1==len2&&s1<s2)) { printf("-"); swap(s1,s2); swap(len1,len2); } for(int i=1;i<=len1;i++) a[i]=s1[len1-i]-'0';//倒序存储 for(int i=1;i<=len2;i++) b[i]=s2[len2-i]-'0';//倒序存储 int len=max(len1,len2); for(int i=1;i<=len;i++) { if(a[i]<b[i]) { a[i+1]--; a[i]+=10; } c[i]=a[i]-b[i]; } while(c[len]==0&&len>=2) len--;//删除多余的前导0 for(int i=len;i>=1;i--) printf("%d",c[i]); return 0; }

学习厌倦了?点我有更多精彩哦!

最新回复(0)