Add Strings

     * 以字符串的形式给出两个非负整数 num1 和 num2,返回 num1 和 num2 的和。
     * num1 和 num2 的长度都小于5100。
     * num1 和 num2 都只包含数字 0-9。
     * num1 和 num2 都不包含任何前导零。
     * 您不能使用任何内置的BigInteger库内的方法或直接将输入转换为整数。

     * eg:
     * 给定 num1 = "123",num2 = "45"

     * 返回 "168"

     *给定num1=“123”,num2=“47”

     *返回“170”

    private string AddStrings(string num1, string num2)
    {
        string res = "";
        int i = num1.Length - 1, j = num2.Length - 1;
        int flag = 0;                                           //进位数
        int a, b;                                               //分别表示num1,和num2 当前位的值
        while (i >= 0 || j >= 0)                                //保证两个字符串所有数字都被相加
        {
            if (i >= 0)
                a = num1[i--] - '0';                            //减去0的ASC值得到的是当前位整数值
            else
                a = 0;
            if (j >= 0)
                b = num2[j--] - '0';
            else
                b = 0;
            int sum = a + b + flag;                             //当前位数字之和
            res = (char)(sum % 10 + '0') + res;
            flag = sum / 10;
        }
        return flag == 1 ? "1" + res : res;                     //如果循环完成 flag==1 说明需要进位,
    }

猜你喜欢

转载自blog.csdn.net/wenbooboo/article/details/81034673