leetcode:整数的各位积和之差

给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。

方法一(转化为字符串然后取各个位数的值)

package Algorithm;

public class subtractProductAndSum {
          
   
    public int subtractProductAndSum(int n) {
          
   
        String sn = String.valueOf(n);
        int multiplication = 1;
        int addition = 0;
        int j = 0;
        for (int i = 0; i < sn.length(); i++){
          
   
            j = Integer.parseInt(String.valueOf(sn.charAt(i)));
            multiplication *= j;
            addition += j;
        }
        return multiplication - addition;
    }
}

方法二(不断取余)

package Algorithm;

public class subtractProductAndSum2 {
          
   
    public int subtractProductAndSum(int n) {
          
   
        int add = 0;
        int mul = 1;
        while (n > 0){
          
   
            int digit = n % 10;
            add += digit;
            mul *= digit;
            n = n / 10;
        }
        return mul - add;
    }
}
经验分享 程序员 微信小程序 职场和发展