标签:
咳咳,我于心不忍,so,我又来写了。。。。。。
源码:
#include<stdio.h>
#include<string.h>
char s1[1000];
int a[1000]={0},b[1000]={0},c[1000]={0};
int main()
{
	int i,j,z,l1,l2,l,o;
	freopen("hp-.in","r",stdin);
	freopen("hp-.out","w",stdout);
	scanf("%s",s1); 
	l1=strlen(s1);
	for(i=0;i<=l1-1;i++)         //把s1(被减数)转换成数字,并倒序存入a数组 
		a[l1-1-i]=s1[i]-‘0‘;
	scanf("%s",s1);
	l2=strlen(s1);
	for(i=0;i<=l2-1;i++)        //把s1(减数)转换成数字,并倒序存入b数组
		b[l2-1-i]=s1[i]-‘0‘;
		
	if(l1==l2){	
		for(j=l1;j>=0;j--)
		{
				if(a[j]>b[j])                //a大 
				{
					o=0;
					break;
				}
				if(b[j]>a[j])                //b大 
				{
					o=1;
					break;
				}
		}
	}
	if(l1>l2||o==0)             //a大时 
	{	
		l=l1;
		for(i=0;i<l;i++)
		{
			if(a[i]<b[i])
			{
				a[i]=a[i]+10;
				a[i+1]-=1;
			}
			c[i]=a[i]-b[i];
		}
		while(l>1&&c[l-1]==0) l--;        //舍去高位中无用的0 
		for(i=l-1;i>=0;i--)             //输出 
		{
			printf("%d",c[i]);
		}
	}	
	else
	{
		printf("-");
		l=l2;
		for(i=0;i<l;i++)
		{
			if(a[i]>b[i])
			{
				b[i]=b[i]+10;
				b[i+1]-=1;
			}
			c[i]=b[i]-a[i];
		}
		while(l>1&&c[l-1]==0) l--;         //舍去高位中无用的0 
		for(i=l-1;i>=0;i--)              //输出 
		{
			printf("%d",c[i]);
		}
	}
	return 0;
}
来自小组:
         成都七中高新校区OI2015信息竞赛       冰杖
http://www.cnblogs.com/chentao1c/ ——冰杖
标签:
原文地址:http://www.cnblogs.com/wuweihehe/p/5648077.html