Welcome to Subscribe On Youtube

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

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

Level

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;
        }
    };
    
  • class Solution:
        def subtractProductAndSum(self, n: int) -> int:
            s, p = 0, 1
            while n:
                t = n % 10
                n //= 10
                s += t
                p *= t
            return p - s
    
    ############
    
    # 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
    
  • func subtractProductAndSum(n int) int {
    	s, p := 0, 1
    	for n != 0 {
    		t := n % 10
    		n /= 10
    		s += t
    		p *= t
    	}
    	return p - s
    }
    
  • function subtractProductAndSum(n: number): number {
        let p = 1;
        let s = 0;
        while (n) {
            const num = n % 10;
            n = Math.floor(n / 10);
            p *= num;
            s += num;
        }
        return p - s;
    }
    
    
  • impl Solution {
        pub fn subtract_product_and_sum(mut n: i32) -> i32 {
            let mut p = 1;
            let mut s = 0;
            while n != 0 {
                let num = n % 10;
                n /= 10;
                p *= num;
                s += num;
            }
            p - s
        }
    }
    
    

All Problems

All Solutions