Nowcoder 刷题 NC1 大数加法
知识点:字符串、模拟
题目解析:输入字符串 计算求和 以字符串的形式返回
考点:大数加法,从字符串尾部计算结果,依次拼接
代码:
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 计算两个数之和
* @param s string字符串 表示第一个整数
* @param t string字符串 表示第二个整数
* @return string字符串
*/
string solve(string s, string t) {
// write code here
//记录字符串的长度,用于对每位进行计算
int s_length = s.size() - 1;
int t_length = t.size() - 1;
//记录进位
int carry = 0;
//创建一个字符串,用于记录结果
string res;
while(s_length>=0||t_length>=0||carry!=0){
//将二进制转化成十进制
int n1 = s_length<0?0:s[s_length--]-'0';//此处别忘记移位
int n2 = t_length<0?0:t[t_length--]-'0';
//计算和,别忘了进位
int sum = n1+n2+carry;
//超过10的进位;
carry = sum/10;
sum = sum%10;
//将计算好的数存入;
res = to_string(sum) + res; //int 转化成 string
}
return res;
}
};