Javascript题解 | #序列找数#
序列找数
http://www.nowcoder.com/practice/a7d1856a72404ea69fdfb5786d65539c
方法一:
主要利用数组方法includes
,一次遍历。
代码
let arr = readline().split(' ')
let max = arr.shift()
let num = [...arr]
let temp = 0
for (let i = 0; i < max; i++){
if (!num.includes(String(i))) {
temp = i;
break;
}
}
console.log(temp);
方法二:
可以得出本题是一个0,1,2,3,4,....的一个序列,其中少了一个数字,那么可以得出原本预期的和是sum=0+1+2+3+4+...=(max+0)*(max+1)/2,其中max+1是项数。再算出实际的和,两者之差就是所求的数。
代码
let arr = readline().split(' ').map(e => +e);
let max = arr.shift();
let num = [...arr];
let oriSum = max * (max + 1) / 2;
let realSum = 0;
for(let i = 0; i < num.length; i++){
realSum += num[i];
}
console.log(oriSum - realSum)