/** * Дан массив A из n — 1 целых чисел, находящихся в интервале от 1 до n. * Все числа встречаются в нём ровно один раз, за исключением одного отсутствующего числа. * Найти это отсутствующее число. */ const findMissingNumber = (A, n) => { // XORing from 1 to n+1 let result = new Array(n).fill(null).map((_, i) => i).reduce((acc, cur) => { return acc ^= cur }, 0) return A.reduce((acc, cur) => acc ^= cur, result) } //selecting n const n = 10 console.log('n:', n) //generating an array of n -1 values const arr = new Array(n).fill(null).map((_, i) => i) //note that i starts from 0, so i = n - 1 console.log('Original array:', arr) // removing random number from an array const missingNumber = Math.floor(Math.random() * n) console.log('Missing number:', missingNumber) const idxMissingNumber = arr.findIndex(val => val === missingNumber) let changedArr = [...arr] changedArr.splice(idxMissingNumber, 1) console.log('Array without missing number:', changedArr) console.log('Result of fn: ', findMissingNumber(changedArr, n)) /** * Та же функция работает и для поиска дубликатов из следующий задачи: * Дан массив A из n + 1 целых чисел, находящихся в интервале от 1 до n. * Все числа встречаются ровно один раз, за исключением одного числа, которое повторяется. * Найти это повторяющееся число. */