2014-09-08 2 views
-7

Интересно, если кто-то будет достаточно любезен, чтобы продемонстрировать использование цикла и других функций в «JavaScript», отвечая на этот вопрос:Javascript - петли

есть общенациональная математике викторины; не менее 67 человек, максимум 670 человек получили право на участие. Каждому участнику присваивается номер входа в зал, где проходит викторина (сначала для входа в зал 1, второй 2 и т. Д.). победителя попросили войти в зал после анонсов. его ответ: сумма людей передо мной и сумма людей после меня равны; вот как вы можете найти мою запись #.

Надеюсь, я смог правильно рассказать об этом.

Я помню, что с моей стороны не справился с этим вопросом в начале 1970-х годов, но потом попросил моих братьев-инженеров-учеников; все они нападали на него с энтузиазмом, чтобы отказаться от отвращения через пару часов (с одним калькулятором из красного света Texas Instruments с кнопками, которые раньше держались!). Я нашел ответ в более поздние годы, но без помощи программирования. Формула (n * (n + 1))/2, очевидно, помогает при суммировании.

Спасибо за ваше время.

Эндрю

+6

Этот вопрос не соответствует теме, потому что он просит других написать код для искателя. – JohnnyHK

+1

Не могли бы вы дать код, который вы уже пробовали? – DevilishDB

+0

Решите n * (n-1)/2 = (max * (max + 1) - n * (n + 1))/2' => 'n * (n-1) = max * (max + 1) - n * (n + 1) ' –

ответ

0

Пусть есть n людей, посещающих этот тест, то # победителя является x.

Таким образом, сумма людей, поступивших до победителя, составляет сумму 1+...+(x-1), сумма людей, поступивших после победителя, составляет сумму (x+1)+...+n.

Здесь у нас есть 1+...+(x-1) = (x+1)+...+n, который имеет значение (x*(x-1))/2 = ((x+n+1)*(n-x))/2. Упрощая это, у нас есть 2*x^2-n^2-n = 0.

Так что в JavaScript, мы пишем как:

for (var n=67; n<=670; n++) { 
    for (var x=1; x<=n; x++){ 
     if (2*x*x-n*n-n == 0) 
      console.log(n,x); 
    } 
} 

Ответ прост: есть 288 людей для викторины, и победитель # 204.

Введите код в любом современном браузере, это должно быть хорошо.

+0

потрясающий! просто удивительно, что могут сделать 4 строки кода. Спасибо вам большое за это. Вы должны были увидеть количество потраченной впустую бумаги, пытаясь решить эту проблему в тот же день. – user4020065

Смежные вопросы