CODEVS3115高精度练习之减法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CODEVS3115高精度练习之减法相关的知识,希望对你有一定的参考价值。
Description
给出两个正整数A和B,计算A-B的值。保证A和B的位数不超过500位。
Input
读入两个用空格隔开的正整数
Output
输出A-B的值
Sample Input
3 12
Sample Output
-9
Hint
两个正整数的位数不超过500位
#include<iostream> #include<cstdio> #include<cstring> using namespace std; char Sa[510],Sb[510]; int a[510],b[510]; int main() { cin>>Sa>>Sb; int aLen=strlen(Sa),bLen=strlen(Sb); int l=max(aLen,bLen); if (bLen>aLen || (aLen==bLen && !strcmp(Sa,Sb))) { swap(Sa,Sb); swap(aLen,bLen); cout<<"-"; } for (int i=1;i<=aLen;i++) a[i]=Sa[aLen-i]-‘0‘; for (int i=1;i<=bLen;i++) b[i]=Sb[bLen-i]-‘0‘; for (int i=1;i<=l;i++) { a[i]=a[i]-b[i]; if (a[i]<0) { a[i]+=10; a[i+1]--; } } while (!a[l]) l--; for (int i=l;i>=1;i--) cout<<a[i]; return 0; }
以上是关于CODEVS3115高精度练习之减法的主要内容,如果未能解决你的问题,请参考以下文章