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 } }