加法进位
c[i]=a[i]+b[i];
if(c[i]>10)
{
c[i]-=10;
c[i+1]+=1;
}
减法借位
if(a[i]<b[i])
{
a[i+1]-=1;
a[i]+=10;
}
试题 算法提高 高精度减法
提交此题
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 高精度减法输入格式 两行,表示两个非负整数a、b,且有a > b。输出格式 一行,表示a与b的差
样例输入
1234567890987654321
9999
样例输出
1234567890987644322
#include<bits/stdc++.h>//万能文件头
using namespace std;
har a[100],b[100];
gets(a);
gets(b);
int alen=strlen(a);
int blen=strlen(b);
int i,j;
int atr[100]={0},btr[100]={0};
for(i=1;i<=alen;i++)
atr[i]=a[alen-i]-'0';
for(i=1;i<=blen;i++)
{
btr[i]=b[blen-i]-'0';
}
int ctr[100];
for(int i=1;i<=alen;i++)
{
if(atr[i]<btr[i])
{
atr[i]+=10;
atr[i+1]-=1;
}
ctr[i]=atr[i]-btr[i];
}
for(int i=alen;i>=1;i--)
cout<<ctr[i];
return 0;
}