Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
不用字符串函数,直接两字符串加,遍历顺序正好是从前往后。附代码int main(){ int n; char a[90],b[90],e[90],c,d,*p,*q,*r; scanf("%d",&n); while(n--){ scanf("%s %s",a,b); p=a;q=b;r=e;d=0; memset(e,0,90); // 两个指针一起走,直到其中一个到字符串结尾 // d保存每次加法的进位 while(*p){ if(0==*q)break; c = *p+*q+d-48; if(c>57){c-=10;d=1;} else d=0; *r=c; p++;q++;r++; } // 长的串还剩余字符,继续遍历。统一让p指向剩下的字符串 if(*q)p=q; while(*p){ c=*p+d; if(c>57){c-=10;d=1;} else d=0; *r=c; p++;r++; } // 处理类似999+1这种情形,加完之后还有进位 if(d)*r++=49;*r=0; // 去掉最终和前的0 r=e;while(*r==48)r++; printf("%s\n",r); } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator