赞
踩
class Solution { public: string addStrings(string num1, string num2) { int len1=num1.length()-1,len2=num2.length()-1; string ret=""; //ret.resize(num2.length()>num1.length()?num1.length():num2.length()); int add=0;//进位 while(len1>=0||len2>=0||add!=0) { int x= len1>=0 ? num1[len1]-'0' : 0; int y= len2>=0 ? num2[len2]-'0' : 0; len1--;len2--; int result=x+y+add; //cout<<result<<endl; ret.push_back(result%10+'0'); add=result/10; } reverse(ret.begin(),ret.end());//要反转,因为相加过程是把低位相加存在低位,而实际用字符串存数字,在低位(下标处)存的是数字的高位 return ret; } };
字符串相加,有很多地方要注意,两串长不一致,进位数据的保存,和两数相加后的进位处理,以及循环控制,和边界判断
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。