Last active
August 29, 2015 14:07
-
-
Save ajile/e97312a18bf1ebfa643c to your computer and use it in GitHub Desktop.
Задача для собеседования (javascript)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Условия задачи: | |
| // Существует список чисел от 1 до 100, числа не повторяются и не упорядочены. | |
| // Одно число пропущено. Требуется написать алгоритм поиска пропещенного числа. | |
| // | |
| // Список формируется следующим образом: | |
| function shuffle(o){ //v1.0 | |
| for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x); | |
| return o; | |
| } | |
| function generate(min, max) { | |
| // Сам список | |
| var a = []; | |
| // Пропущенный индекс | |
| var lostindex = Math.round(Math.random() * 100); | |
| for (var i = min; i <= max; i++) { | |
| if (i === lostindex) continue; | |
| a.push(i); | |
| }; | |
| return shuffle(a); | |
| } | |
| var a = generate(1, 100); | |
| /** | |
| * Получится следующий список | |
| * | |
| * a = [66, 21, 85, 74, 41, 8, 23, 52, 87, 86, 43, 65, 88, 92, 78, 6, 12, 100, 42, | |
| * 27, 63, 59, 94, 19, 30, 62, 57, 18, 45, 69, 47, 53, 80, 3, 20, 96, 68, 55, | |
| * 70, 24, 97, 1, 37, 83, 93, 28, 54, 64, 46, 84, 36, 51, 33, 67, 40, 5, 14, | |
| * 73, 15, 31, 2, 9, 17, 35, 48, 22, 60, 89, 90, 50, 95, 32, 99, 82, 75, 38, | |
| * 77, 11, 26, 10, 7, 4, 16, 76, 34, 81, 98, 49, 79, 13, 58, 91, 61, 56, 29, | |
| * 25, 39, 44, 71]; | |
| */ | |
| // Решение задачи | |
| var absoluteSum = 5050; | |
| var sum = 0; | |
| for (var i = 0; i < a.length; i++) { | |
| sum += a[i] || 0; | |
| } | |
| var result = absoluteSum - sum; | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment