比赛 NOIP2015普及组练习 评测结果 C
题目名称 增强的减法问题 最终得分 0
用户昵称 WHZ0325 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2015-11-05 20:26:44
显示代码纯文本
#include <fstream>
#include <string>
#include <cstring>
using namespace std;
ifstream fin("add.in");
ofstream fout("add.out");
string a,b;
int index=0;
string add(string a,string b) {
	int x[101];
	int y[101];
	string c;
	memset(x,0,sizeof(x));
	memset(y,0,sizeof(y));
	for(unsigned int i=0;i<a.length();i++) {
		x[i]=a[a.length()-1-i]-'0';
	}
	for(unsigned int i=0;i<b.length();i++) {
		y[i]=b[b.length()-1-i]-'0';
	}
	if(a.length()>=b.length()) {
		int k=0;
		for(unsigned int i=0;i<=a.length();i++) {
			int integer=x[i]+y[i]+k;
			x[i]=integer%10;
			k=integer/10;
		}
		if(x[a.length()]!=0) {
			index=a.length();
		}
		else {
			index=a.length()-1;
		}
	}
	else {
		int k=0;
		for(unsigned int i=0;i<=b.length();i++) {
			int integer=x[i]+y[i]+k;
			x[i]=integer%10;
			k=integer/10;
		}
		if(x[b.length()]!=0) {
			index=b.length();
		}
		else {
			index=b.length()-1;
		}
	}
	for(int i=0;i<=index;i++) {
		c[index-i]=x[i]+'0';
	}
	return c;
}
int main() {
	fin>>a>>b;
	string c=add(a,b);
	for(int i=0;i<=index;i++) {
		fout<<c[i];
	}
	fin.close();
	fout.close();
	return 0;
}