Skip to content

1281. Subtract the Product and Sum of Digits of an Integer

EasyLeetCode

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 ≤ 105

How to solve the problem

While loop

Code

Python
class Solution:
    def subtractProductAndSum(self, n: int) -> int:
        sum = 0
        product = 1
        if n == 0: return 0
        while n > 0:
            sum += n % 10
            product *= n % 10
            n //= 10

        return product - sum

Complexity

Time complexity: O(log n)

The number of iterations is equal to the number of digits in n, which is ⌊log10(n)⌋ + 1.

Space complexity: O(1)

Comments

No comments yet. Be the first to comment!