这种题一看就知道是大数问题,可能需要的是前导‘0’的处理。注意处理格式,这样一般就ac了
#include <iostream> #include <cstring> #include <string> #include <stdio.h> using namespace std; string Add(string fNum,string sNum) { if( fNum.length() < sNum.length() ) fNum.swap(sNum); string A = "0"; A += fNum; for ( int i=1;i<=fNum.length();i++) if(i<=sNum.length()) A[A.length()-i]+=sNum[sNum.length()-i]-'0'; for( int i=1;i<A.length();i++) { if(A[A.length()-i]>'9') { A[A.length()-i]-=10;A[A.length()-i-1]+=1; } } while(A[0]=='0') A.erase(0,1); return A; } int main () { string a,b; int t; cin>>t; int ncount=1; int flag=false; while (t--) { cin>>a>>b; string re=Add(a,b); if (flag==true) cout<<endl; if (flag==false) { flag=true; } printf("Case %d:\n",ncount++); cout<<a<<" + "<<b<<" = "<<re<<endl; } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。