C++ 高精度减法
资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
高精度减法
输入格式
两行,表示两个非负整数a、b,且有a > b。
输出格式
一行,表示a与b的差
样例输入
1234567890987654321
9999
样例输出
1234567890987644322
代码如下
#include<iostream>
#include<string.h>
using namespace std;
int main(){
char a[1000],b[1000];
cin>>a>>b;
int l1=strlen(a),l2=strlen(b);
int m[1001]={0},n[1001]={0};
for(int i=0;i<l1;i++) m[i]=a[l1-i-1]-'0';
for(int i=0;i<l2;i++) n[i]=b[l2-i-1]-'0';
int c[1001]={0};
for(int i=0;i<l1;i++){
if(m[i]<n[i]){
c[i]=m[i]+10-n[i];
m[i+1]--;
}
else c[i]=m[i]-n[i];
}
int j=l1-1;
while(c[j]==0&&j>=0) j--;
if(j>=0) for(int i=j;i>=0;i--) cout<<c[i];
else cout<<0;
return 0;
}