首页 > 代码库 > 3115 高精度练习之减法

3115 高精度练习之减法

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char m[1001],n[1001];
int a[1001],b[1001],c[1001];
int main()
{
	scanf("%s",&m);
	scanf("%s",&n);
	int lm=strlen(m);
	int ln=strlen(n);
	if(lm<ln||(lm==ln&&strcmp(m,n)<0))
	 {
	 	swap(m,n);
	 	cout<<"-";
	 }
	 lm=strlen(m);
	 ln=strlen(n);
	for(int i=0;i<lm;i++)
	 {
	 	a[i]=m[lm-i-1]-‘0‘;
	 }
	 for(int i=0;i<ln;i++)
	  {
	  	b[i]=n[ln-i-1]-‘0‘;
	  }
	  int lc;
	  lc=0;
	  while(lc<=lm)
	   {
	   	if(a[lc]<b[lc])
	   	 {
	   	 	a[lc]+=10;
	   	 	a[lc+1]--;
			}
		c[lc]=a[lc]-b[lc];	
		lc++;
	   }
	  while(c[lc]==0&&lc>=1)
	   {
	   	lc--;
	   }
	   for(int i=lc;i>=0;i--)
	    {
	    	cout<<c[i];
		 } 
}

3115 高精度练习之减法