NC1 大数加法

描述

以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。

(字符串长度不大于100000,保证字符串仅由'0'~'9'这10种字符组成)

示例1

输入:

"1","99"

复制返回值:

"100"

复制说明:

1+99=100 
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 计算两个数之和
     * @param s string字符串 表示第一个整数
     * @param t string字符串 表示第二个整数
     * @return string字符串
     */
    string solve(string s, string t) {
        // write code here
        if (s.length() > t.length()) {
            solve(t, s);
        }
        reverse(s.begin(), s.end());
        reverse(t.begin(), t.end());
        int tmp = 0, sum;
        string result = "";
        for (int i = 0; i < s.length(); i++) {
            sum = tmp + s[i] + t[i] - 96;
            if (sum >= 10) {
                tmp = 1;
                sum -= 10;
            } else {
                tmp = 0;
            }
            result += char(sum + 48);
        }
        for (int i = s.length(); i < t.length(); i++) {
            sum = tmp + t[i] - 48;
            if (sum >= 10) {
                tmp = 1;
                sum -= 10;
            } else {
                tmp = 0;
            }
            result += char(sum + 48);
        }
        if (tmp == 1) {
            result += '1';
        }
        reverse(result.begin(), result.end());
        return result;
    }
};

开始学习C++

cout << :输出流。endl是换行符

reverse函数可用

string有.begin()和.end(),可以表示首尾,也可以直接加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值