A+B(C语言)
计算A+B
http://www.nowcoder.com/questionTerminal/29092b066f8e4b5c90d5463a81f7b75f
#include<cstdio> #include<cstring> char a[10005]; int num[10005];//存放答案 void fun()//处理函数 { int t,count=0; scanf("%s",&a);//输入算式 int len=strlen(a); if(a[0]=='+'||a[len-1]=='+')//当+在开头和结尾的时候 { printf("skipped\n"); return; } for(int i=0;i<len;i++)//找到加号 { if(a[i]=='+') { t=i;//记录下+号的位置 count++; } } if(count>1||count==0)//当+号多余一个或者没有+号时 { printf("skipped\n"); return; } int begin_1=0,begin_2=t+1,end_1=t-1,end_2=len-1; int c=0,k=0; /* for(int i=0;i<=end_1;i++) printf("%c",a[i]); printf("\n"); for(int i=begin_2;i<=end_2;i++) printf("%c",a[i]); */ while(end_1>=begin_1||end_2>=begin_2)//将+号前后从后往前加和 { int m1=0,m2=0; if(end_1>=begin_1)m1=a[end_1]-'0'; if(end_2>=begin_2)m2=a[end_2]-'0'; num[c++]=(m1+m2+k)%10; k=(m1+m2+k)/10; end_1--; end_2--; } if(k) { printf("%d",k); } for(int i=c-1;i>=0;i--) printf("%d",num[i]); printf("\n"); } int main() { int n; scanf("%d",&n); while(n--) { fun(); } return 0; }