比赛 NOIP2015普及组练习 评测结果 AAWAAA
题目名称 增强的减法问题 最终得分 83
用户昵称 微星矢柏 运行时间 0.003 s
代码语言 C++ 内存使用 0.26 MiB
提交时间 2015-11-05 16:59:36
显示代码纯文本
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
void init(int a[])
{
	string s;
	cin>>s;
	a[0]=s.length();
	for(int i=1;i<=a[0];++i)
	    a[i]=s[a[0]-i]-'0';
}
void exchange(int a[],int b[])
{
	int l[100]={0};
	cout<<"-";
	for(int i=0;i<100;++i)
	{             
		l[i]=a[i];
	    a[i]=b[i]; 
	    b[i]=l[i];
	}  
}
void minus_(int a[],int b[],int c[])
{
	int length;
	if(a[0]<b[0])exchange(a,b);
	else if(a[0]==b[0])
	{
		for(int i=a[a[0]];i>=1;--i)
		if(a[i]<b[i])
		{
			exchange(a,b);
			break;
		}
	}
	length=a[0];
	for(int i=1;i<=length;++i)
	{
		if(a[i]<b[i]){--a[i+1];a[i]+=10;}
		c[i]=a[i]-b[i];
	}
    while(c[length]==0&&length>1)
		length--;
	c[0]=length;
}
void prn(int c[])
{
	for(int i=c[0];i>0;i--)
	cout<<c[i];
}
int main()
{
	freopen("sub.in","r",stdin);
	freopen("sub.out","w",stdout);
    int m[100]={0},n[100]={0},c[100]={0};
    init(m);init(n);
    minus_(m,n,c);
    prn(c);
    return 0;
}