大整数减法
题目描述:
求两个大的正整数相减的差。
输入格式:
共2行,第1行是被减数a,第2行是减数b(a > b)。每个大整数不超过200位,不会有多余的前导零。
输出格式:
一行,即所求的差。
样例输入:
9999999999999999999999999999999999999 9999999999999
样例输出:
9999999999999999999999990000000000000
#include <bits/stdc++.h> using namespace std; char a[1000],b[1000]; int a1[1000],b1[1000],c[1000]; int main() { cin>>a>>b; int lena=strlen(a),lenb=strlen(b); for(int i=lena-1;i>=0;i--) a1[lena-1-i]=a[i]-'0'; for(int i=lenb-1;i>=0;i--) b1[lenb-1-i]=b[i]-'0'; int m=max(lena,lenb); for(int i=0;i<m;i++) { if(a1[i]<b1[i]) { a1[i+1]--; c[i]+=10; c[i]+=a1[i]-b1[i]; } else c[i]+=a1[i]-b1[i]; } while(c[m]==0 && m>=1) m--; for(int i=m;i>=0;i--) cout<<abs(c[i]); return 0; }

浙公网安备 33010602011771号