题目名称

给你一个正整数 n 。n 中的每一位数字都会按下述规则分配一个符号:

最高有效位 上的数字分配到 正 号。
剩余每位上数字的符号都与其相邻数字相反。
返回所有数字及其对应符号的和。

示例

输入:n = 521
输出:4
解释:(+5) + (-2) + (+1) = 4

输入:n = 111
输出:1
解释:(+1) + (-1) + (+1) = 1

题解

首先根据对应位置把对应位数对应的数字提取出来,然后按照偶数位相加,奇数位相加,最后偶数位的和减去奇数位的和就是最后得到的结果

答案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
* @param {number} n
* @return {number}
*/
var alternateDigitSum = function(n) {
const digst = []

while(n > 0) {
const mode = n % 10
digst.unshift(mode)
n = (n - mode) / 10
}
let total = 0
for(let i = 0; i < digst.length; i++) {
if(i % 2 === 0) {
total += digst[i]
} else {
total -= digst[i]
}
}
return total
};