关注 每天一道编程题 专栏,一起学习进步。

题目

Given an integer number n, return the difference between the product of its digits and the sum of its digits.

Example 1:

Input: n = 234
Output: 15
Explanation:
Product of digits = 2 * 3 * 4 = 24
Sum of digits = 2 + 3 + 4 = 9
Result = 24 - 9 = 15

Example 2:

Input: n = 4421
Output: 21
Explanation:
Product of digits = 4 * 4 * 2 * 1 = 32
Sum of digits = 4 + 4 + 2 + 1 = 11
Result = 32 - 11 = 21

Constraints:

1 <= n <= 10^5

解析

题目通俗易懂,不多做解释。
解题关键就在于获取到一个数的每位数—>取余10再除以10,重复操作即可
如123
123%10=3
123/10=12 12%10=2
12/10=1 1%10=1

答案

class Solution {
    public int subtractProductAndSum(int n) {
        int product=1;
        int sum=0;
        while(n>0){
            int tmp=n%10;
            product*=tmp;
            sum+=tmp;
            n/=10;
        }
        return product-sum;
    }
}

评论区似乎没有其他更好的解法。