Add strings

大數相加,很快地想到從後面開始加,也想到長度不一樣時,做到短的開頭就不做

不過還有個技巧是短的做完後,就補 0 繼續做運算,程式碼會比較漂亮

public String addStrings(String num1, String num2) {

    String res = "";
    int p1 = num1.length()-1;
    int p2 = num2.length()-1;
    int carry = 0;

    while (p1 >= 0 || p2 >= 0) {
        int i1 = 0, i2 = 0;
        if (p1 >= 0) {
            i1 = num1.charAt(p1--) - '0';
        } else if (p1 < 0) {
            i1 = 0;
        }

        if (p2 >= 0) {
            i2 = num2.charAt(p2--) - '0';
        } else if (p2 < 0) {
            i2 = 0;
        }
        int sum = i1 + i2 + carry;
        res = (char)(sum % 10 + '0') + res;
        carry = sum / 10;
    }
    return carry > 0 ? "1" + res : res;
}

results matching ""

    No results matching ""