[LeetCode] 1281. Subtract the Product and Sum of Digits of an Integer 整数的各位积和之差
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
这道题给了一个正整数n,让求其每一位的数字的乘积减去每一位数字的和,并不算一道难题,只要知道如何取出每一位上的数字基本上就可以秒解,也符合其 Easy 的身价。取每一位上的数字就用一个 while 循环,只要n大于0就一直循环,通过对 10 取余就可以取出个位上的数字,将其乘到 prod 中,加到 sum 中,然后n自除以 10,就可以去掉已经取出的数字,然后再进行上述的操作,直到每一位的数字都被取出并处理了,最后返回 prod 减去 sum 的值即可,参见代码如下:
class Solution {
public:
int subtractProductAndSum(int n) {
int prod = 1, sum = 0;
while (n > 0) {
int digit = n % 10;
prod *= digit;
sum += digit;
n /= 10;
}
return prod - sum;
}
};
Github 同步地址:
https://github.com/grandyang/leetcode/issues/1281
参考资料:
https://leetcode.com/problems/subtract-the-product-and-sum-of-digits-of-an-integer/