1. 程式人生 > 其它 >WPF自定義控制元件與樣式(4)-CheckBox/RadioButton自定義樣式

WPF自定義控制元件與樣式(4)-CheckBox/RadioButton自定義樣式

給定兩個以字串形式表示的非負整數num1和num2,返回num1和num2的乘積,它們的乘積也表示為字串形式。

示例 1:

輸入: num1 = "2", num2 = "3"
輸出: "6"
示例2:

輸入: num1 = "123", num2 = "456"
輸出: "56088"
說明:

num1和num2的長度小於110。
num1 和num2 只包含數字0-9。
num1 和num2均不以零開頭,除非是數字 0 本身。
不能使用任何標準庫的大數型別(比如 BigInteger)或直接將輸入轉換為整數來處理。
通過次數154,096提交次數343,823

class Solution {
    public String multiply(String num1, String num2) {
        int total[] = new int[num1.length() + num2.length()];
        boolean flag = true;
        int k = total.length - 1;
        for (int i = num2.length() - 1; i >= 0; i--) {//首先處理兩個數相乘,不處理進位
            for (int j = num1.length() - 1; j >= 0; j--) {
                total[i + j] += (num1.charAt(j) - '0') * (num2.charAt(i) - '0');
                if (flag == true) {
                    k = i + j;//使用k標記有效的最高位否則數字結尾會出現多餘的0,例如nums1='2',nums2='3'結果為60
                    flag = false;
                }
            }
        }
        for (int i = k; i > 0; i--) {//處理進位
                total[i - 1] += total[i] / 10;
                total[i] %= 10;
        }
        String str = "";
        int member = 0;
        for (int i = 0; i <= k; i++) {//使用member標記0的個數保證結果為0時只輸出一個0
            if(total[i]==0)
                member++;
            str += total[i];
        }
        if(member == k+1)
            return "0";
        else
            return str;

    }
}