| 比赛 | 
    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;
}