题解 | #a+b#采用进制转换中的思想解决

a+b

http://www.nowcoder.com/practice/4c39c984ea3848b48e111b8e71ec1dd4

#include <cmath>
using namespace std;
#include <vector>

string myadd(string str1, string str2) {

	int d1 = str1.size();
	int d2 = str2.size();
	//将两字符串对齐
	if (d2 > d1) {
		str1.insert(0, d2 - d1, '0');
	}
	else {
		str2.insert(0, d1 - d2, '0');
	}

	int fro = 0;	//进位初始为0
	for (int i = str1.size() - 1; i >= 0; i--) {
		int ret = (str1[i] - '0' + str2[i] - '0' + fro) / 10;	//暂存对下一位的进位
		str1[i] = (str1[i] - '0' + str2[i] - '0' + fro) % 10 + '0';
		fro = ret;
	}
	if (fro == 1) {
		str1.insert(0, 1, '1');
	}
	return str1; 
}

int main() {
	
	string str1, str2;
	while (cin >> str1 >> str2) {
		cout << myadd(str1, str2) << endl;
	}
	system("pause");
}


全部评论

相关推荐

11-01 08:48
门头沟学院 C++
伤心的候选人在吵架:佬你不要的,能不能拿户口本证明过户给我。。球球了
点赞 评论 收藏
分享
寿命齿轮:实习就一段还拉了,项目一看就不是手搓,学历也拉了,技术栈看着倒是挺好,就是不知道面试表现能咋样。 不过现在才大三,争取搞两端大厂实习,或者一个纯个人项目+一段大厂,感觉秋招还是未来可期。
投递美团等公司10个岗位
点赞 评论 收藏
分享
昨天 21:43
已编辑
Imperial College London Java
汇丰科技 oc 18*12 + 年终
点赞 评论 收藏
分享
评论
3
收藏
分享
牛客网
牛客企业服务