1. 问题描述:
给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。
示例 1:
输入:n = 234
输出:15
解释:
各位数之积 = 2 * 3 * 4 = 24
各位数之和 = 2 + 3 + 4 = 9
结果 = 24 - 9 = 15
示例 2:
输入:n = 4421
输出:21
解释:
各位数之积 = 4 * 4 * 2 * 1 = 32
各位数之和 = 4 + 4 + 2 + 1 = 11
结果 = 32 - 11 = 21
提示:
1 <= n <= 10^5
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/subtract-the-product-and-sum-of-digits-of-an-integer
2. 思路分析:
我们只需要对给出的数字n中通过除10取余得到各个位置上的数字计算出相应的结果即可
3. 代码如下:
class Solution:
def subtractProductAndSum(self, n: int) -> int:
product, sum = 1, 0
while n > 0:
t = n % 10
product *= t
sum += t
# 注意两杠是整除
n //= 10
return product - sum