跳到主要内容

2544.交替数字和

链接:2544.交替数字和
难度:Easy
标签:数学
简介:返回所有数字及其对应符号的和。

题解 1 - python

  • 编辑时间:2023-01-22
  • 执行用时:32ms
  • 内存消耗:15MB
  • 编程语言:python
  • 解法介绍:遍历。
class Solution:
def alternateDigitSum(self, n: int) -> int:
ans = 0
f = 1
if len(str(n)) % 2 == 0:
f = -1
while n:
ans += f * (n % 10)
f *= -1
n //= 10
return ans

题解 2 - rust

  • 编辑时间:2023-01-22
  • 内存消耗:2MB
  • 编程语言:rust
  • 解法介绍:同上。
impl Solution {
pub fn alternate_digit_sum(n: i32) -> i32 {
let mut n = n;
let mut ans = 0;
let mut f = if n.to_string().len() % 2 == 0 { -1 } else { 1 };
while n > 0 {
ans += f * (n % 10);
f *= -1;
n /= 10;
}
return ans;
}
}

题解 3 - cpp

  • 编辑时间:2023-07-12
  • 执行用时:4ms
  • 内存消耗:5.7MB
  • 编程语言:cpp
  • 解法介绍:遍历。
class Solution {
public:
int alternateDigitSum(int n) {
int len = to_string(n).size(), res = 0, cur = 1;
if (len % 2 == 0) cur *= -1;
while (n) {
res += (n % 10) * cur;
cur *= -1;
n /= 10;
}
return res;
}
};