zl程序教程

您现在的位置是:首页 >  其他

当前栏目

[LeetCode] 1281. Subtract the Product and Sum of Digits of an Integer 整数的各位积和之差

LeetCode The and of an 整数 sum Integer
2023-09-11 14:21:36 时间

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

这道题给了一个正整数n,让求其每一位的数字的乘积减去每一位数字的和,并不算一道难题,只要知道如何取出每一位上的数字基本上就可以秒解,也符合其 Easy 的身价。取每一位上的数字就用一个 while 循环,只要n大于0就一直循环,通过对 10 取余就可以取出个位上的数字,将其乘到 prod 中,加到 sum 中,然后n自除以 10,就可以去掉已经取出的数字,然后再进行上述的操作,直到每一位的数字都被取出并处理了,最后返回 prod 减去 sum 的值即可,参见代码如下:


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

Github 同步地址:

https://github.com/grandyang/leetcode/issues/1281


参考资料:

https://leetcode.com/problems/subtract-the-product-and-sum-of-digits-of-an-integer/

https://leetcode.com/problems/subtract-the-product-and-sum-of-digits-of-an-integer/discuss/446372/JavaC%2B%2BPython-Straight-Forward-Solution


LeetCode All in One 题目讲解汇总(持续更新中...)