Formatted question description: https://leetcode.ca/all/1281.html

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

Easy

## Description

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

## Solution

Convert the number to a string then to an array with type char. Calculate the product and the sum from each digit, and calculate the difference.

• class Solution {
public int subtractProductAndSum(int n) {
if (n < 10)
return 0;
char[] array = String.valueOf(n).toCharArray();
int length = array.length;
int product = 1, sum = 0;
for (int i = 0; i < length; i++) {
int digit = array[i] - '0';
product *= digit;
sum += digit;
}
int difference = product - sum;
return difference;
}
}

• // OJ: https://leetcode.com/problems/subtract-the-product-and-sum-of-digits-of-an-integer/
// Time: O(logN)
// Space: O(1)
class Solution {
public:
int subtractProductAndSum(int n) {
int prod = 1, sum = 0;
while (n) {
int d = n % 10;
n /= 10;
prod *= d;
sum += d;
}
return prod - sum;
}
};

• # 1281. Subtract the Product and Sum of Digits of an Integer
# https://leetcode.com/problems/subtract-the-product-and-sum-of-digits-of-an-integer/

class Solution:
def subtractProductAndSum(self, n: int) -> int:
p = 1
c = 0

for i,x in enumerate(str(n)):
p *= int(x)
c += int(x)

return p - c