Subtract the Product and Sum of Digits of an Integer
- 时间:2020-09-15 16:10:27
- 分类:网络文摘
- 阅读:91 次
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 = 15Example 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 = 21Constraints:
1 <= n <= 10^5Hints:
How to compute all digits of the number?
Use modulus operator (%) to compute the last digit.
Generalise modulus operator idea to compute all digits.

leetcode-debugger
To get the digits of a integer, we can iteratedly divide the integer by ten, and retrieve the right-most digit by using modulous operator (%). The time complexity is O(lgN).
1 2 3 4 5 6 7 8 9 10 11 12 13 | class Solution { public: int subtractProductAndSum(int n) { int sum = 0; int product = 1; while (n > 0) { sum += n % 10; product *= n % 10; n /= 10; } return product - sum; } }; |
class Solution { public: int subtractProductAndSum(int n) { int sum = 0; int product = 1; while (n > 0) { sum += n % 10; product *= n % 10; n /= 10; } return product - sum; } };
The C++ code above requires O(1) constant space. And in Python, you could convert the integer into string, join them with a space, then split them into array of digit strings, finally convert them into list of digits by using the map function.
1 2 3 4 5 6 7 | from operator import mul from functools import reduce class Solution: def subtractProductAndSum(self, n: int) -> int: temp = list(map(int, ' '.join(str(n)).split())) return reduce(mul, temp, 1) - sum(temp) |
from operator import mul from functools import reduce class Solution: def subtractProductAndSum(self, n: int) -> int: temp = list(map(int, ' '.join(str(n)).split())) return reduce(mul, temp, 1) - sum(temp)
Then, we can compute the produce by using the reduce function, with the mul operator. The sum of digits can be just obtained via the sum() function.
–EOF (The Ultimate Computing & Technology Blog) —
推荐阅读:5 Tips to Make Sure Your Blogs Works on Every Browser Learn from Business Entrepreneurs Who Take the Time to Train Oth The Story Of Aaron Swartz And How His Death Could Change Compute Smart Finance Tips for Bloggers 8 Ways to Build Up Seed Money to Turn Your Blog into a Business Apple Reveals ARKit At WWDC Blogging From the Road: Japan Edition How to Redesign Your Blog for Improved User Experience Yes, It’s Possible to Grab Loans When Working as a Freelancer 2017 Most Unique and Friendliest CMS for Small Businesses
- 评论列表
-
- 添加评论