题解 | #大数加法#
大数加法
http://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475
就是一个进位的问题,大于10就进一位。
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 计算两个数之和
* @param s string字符串 表示第一个整数
* @param t string字符串 表示第二个整数
* @return string字符串
*/
string solve(string s, string t) {
// write code here
bool hasOne = false;
int n = min(s.length(), t.length());
int m = max(s.length(), t.length());
string tall,small;
if(s.length() >= t.length()){
tall = s;
small = t;
}else{
tall = t;
small = s;
}
for(int i=0;i<m;i++){
int num = tall[m-i-1]-'0';
if(i < n){
num += (small[n-i-1]-'0');
}
if(hasOne){
num += 1;
hasOne = false;
}
if(num >= 10){
hasOne = true;
num = num % 10;
}
tall[m-i-1] = '0'+num;
}
if(hasOne){
tall = "1" + tall;
}
return tall;
}
};
查看10道真题和解析