文章目錄
- 1281. 整數的各位積和之差:
- 樣例 1:
- 樣例 2:
- 提示:
- 分析
- 題解
- java
- c
- c++
- python
- go
- rust
- 原題傳送門:https://leetcode-cn.com/problems/subtract-the-product-and-sum-of-digits-of-an-integer/
1281. 整數的各位積和之差:
給你一個整數 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 <= 1 0 5 10^5 105
分析
- 面對這道演算法題目,我陷入了沉思,
- 我實在想不出有什么妙法,只能按題意去做了,
- 如果說有點什么需要注意的點的話,可能就是怎么取出每一位數,
- 對10取余數是常規做法,
- 不知道有么有可能,數學上能有什么高速解法,
題解
java
class Solution {
public int subtractProductAndSum(int n) {
int product = 1;
int sum = 0;
while (n > 0) {
int digit = n % 10;
product *= digit;
sum += digit;
n /= 10;
}
return product - sum;
}
}
c
int subtractProductAndSum(int n){
int product = 1;
int sum = 0;
while (n > 0) {
int digit = n % 10;
product *= digit;
sum += digit;
n /= 10;
}
return product - sum;
}
c++
class Solution {
public:
int subtractProductAndSum(int n) {
int product = 1;
int sum = 0;
while (n > 0) {
int digit = n % 10;
product *= digit;
sum += digit;
n /= 10;
}
return product - sum;
}
};
python
class Solution:
def subtractProductAndSum(self, n: int) -> int:
p = 1
s = 0
while n > 0:
digit = n % 10
p *= digit
s += digit
n //= 10
return p - s
go
func subtractProductAndSum(n int) int {
product := 1
sum := 0
for n > 0 {
digit := n % 10
product *= digit
sum += digit
n /= 10
}
return product - sum
}
rust
impl Solution {
pub fn subtract_product_and_sum(n: i32) -> i32 {
let mut product = 1;
let mut sum = 0;
let mut n = n;
while n > 0 {
let digit = n % 10;
product *= digit;
sum += digit;
n /= 10;
}
product - sum
}
}

原題傳送門:https://leetcode-cn.com/problems/subtract-the-product-and-sum-of-digits-of-an-integer/
非常感謝你閱讀本文~
歡迎【👍點贊】【?收藏】【📝評論】~
放棄不難,但堅持一定很酷~
希望我們大家都能每天進步一點點~
本文由 二當家的白帽子:https://le-yi.blog.csdn.net/ 博客原創~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/381991.html
標籤:python
