比赛 NOIP2015普及组练习 评测结果 AAAAAAAAAA
题目名称 增强的加法问题 最终得分 100
用户昵称 cstring 运行时间 0.014 s
代码语言 C++ 内存使用 0.30 MiB
提交时间 2015-11-05 21:37:40
显示代码纯文本
#include <cstdio>
#include <cstring>
    char s[1005], t[1005];
	int ss[1005], tt[1005];
int main()
{
	freopen("add.in","r",stdin);
	freopen("add.out","w",stdout);
	int o=0,q=0;
	scanf("%s %s", s+1, t+1);
	for(int i = 1; i <= strlen(s+1); i++){
		ss[i] = s[i]-'0';
		if(ss[i]<0)ss[i]=0;
	}
	for(int i = 1; i <= strlen(t+1); i++){
		tt[i]=t[i]-'0';
		if(tt[i]<0)tt[i]=0;
	}
	int f=strlen(t+1);
	int m=f,c=strlen(s+1);
	for(int i =strlen(s+1) ; ;){
		if(i<0)i=0;
		if(f<0)f=0;
		if(i==0&&f==0)break;
		if(i>=f){
			ss[i]=ss[i]+tt[f];
		ss[i-1]+=ss[i]/10;
		ss[i]=ss[i]%10;
		}
		else{
			tt[f]=ss[i]+tt[f];
		tt[f-1]+=tt[f]/10;
		tt[f]=tt[f]%10;
		}
		i--,f--;
		
	}
	
	if(c>=m){
	for(int i=0;i<= strlen(s+1);i++){
		if(ss[o]==0){
		o++;
		continue;
	}
		else 
		{
		printf("%d",ss[i]);
		q=1;
	    }
	}
    }
    else
    {
    	for(int i=0;i<= strlen(t+1);i++){
		if(tt[o]==0){
		o++;
		continue;
	}
		else 
		{
		printf("%d",tt[i]);
		q=1;
	    }
	}
	}
	if(q==0)printf("0");
	
	return 0;
}