高精度减法

#include<stdio.h>
#include<string.h>
#define MAX 1000
int * jie(int * ,int * ,int );
int l=0;
int main()
{
	char ch1[MAX],ch2[MAX];
	int in1[MAX]={0},in2[MAX]={0};
	int lench1,lench2;
	while(~scanf("%s%s",ch1,ch2))                                 
	{
		lench1=strlen(ch1);                                      
		lench2=strlen(ch2);
		int len=lench1;
		for(int i=0,j=lench1-1;i<lench1;++i,j--)
			in1[j]=ch1[i]-'0';
		for(int j=0,i=lench2-1;j<lench2;++j,--i)
			in2[i]=ch2[j]-'0';
		int * ap;
		ap=jie(in1,in2,len);
		for(int i=l;i>=0;--i)
			printf("%d",ap[i]);
		putchar('\n');
	}
	return 0;
}
int * jie(int * a,int * b,int len)
{
	int ap[MAX]={0};
	for(int i=0;i<len;++i)
	{                                        
		a[i]-=b[i];
		if(a[i]<0)                             
		{
			a[i+1]--;
			a[i]+=10;
		}
		if(a[i])
			l=i;                                      
	}
	int ji[MAX]={0};
	for(int i=0;i<=l;++i)
		ji[i]=a[i];
	return ji;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值