:: Игры Разума
Задачка с lenty.ru
Pliskin
Автор

Сообщений: 2959
Откуда: Новосибирск
Дата регистрации: 19.11.2003
Lenty.ru
Мужик живет на улице, на которой больше 20, но меньше 500 домов (все дома пронумерованы по порядку). Мужик обнаружил, что все номера от первого до его собственного включительно
в сумме дают половину суммы всех номеров от первого до последнего включительно.
В каком номере дома он живет? Сколько всего домов на улице?
Я решил с помощью SQL-запроса ;)
Ratings: 0 negative/0 positive
Re: Задачка с lenty.ru
Snick

Сообщений: 5949
Откуда: Москва
Дата регистрации: 21.05.2001
А я лучше дождусь там же, на ленте, ответа


------------------
www.sngsnick.com

Ratings: 0 negative/0 positive
Re: Задачка с lenty.ru
Pliskin
Автор

Сообщений: 2959
Откуда: Новосибирск
Дата регистрации: 19.11.2003
Snick
А я лучше дождусь там же, на ленте, ответа
Задачка была позавчера, соответственно ответ вчера! ;)
Ratings: 0 negative/0 positive
Re: Задачка с lenty.ru
Владимир Максимов

Сообщений: 14095
Откуда: Москва
Дата регистрации: 02.09.2000
Речь идет об арифметической прогрессии с шагом 1. В этом случае, сумма числового ряда арифметической прогрессии определяется по формуле

(1+N)*N/2

Тогда условие задачи формально записывается так

((1+N)*N/2)*2 = (1+Х)*Х/2

или, если слегка упростить

(1+N)*N*2 = (1+Х)*Х

Где значение N находится в диапазоне от 1 до 500
а значение Х находится в диапазоне от 21 до 500

причем N <= X и это целые числа.

Чтобы не мучиться с формальным решением, можно написать два вложенных цикла

For m.lnI = 21 to 500
For m.lnJ = 1 to m.lnI
If 2*m.lnJ*(m.lnJ+1) = m.lnI*(m.lnI+1)
?m.lnJ, m.lnI
endif
endfor
endfor

Получаем решение: 84 дом, всего домов 119
Ratings: 0 negative/0 positive
Re: Задачка с lenty.ru
Pliskin
Автор

Сообщений: 2959
Откуда: Новосибирск
Дата регистрации: 19.11.2003
Владимир Максимов
Речь идет об арифметической прогрессии с шагом 1. В этом случае, сумма числового ряда арифметической прогрессии определяется по формуле
(1+N)*N/2

Тогда условие задачи формально записывается так

((1+N)*N/2)*2 = (1+Х)*Х/2

или, если слегка упростить

(1+N)*N*2 = (1+Х)*Х

Где значение N находится в диапазоне от 1 до 500
а значение Х находится в диапазоне от 21 до 500

причем N <= X и это целые числа.

Чтобы не мучиться с формальным решением, можно написать два вложенных цикла

For m.lnI = 21 to 500
For m.lnJ = 1 to m.lnI
If 2*m.lnJ*(m.lnJ+1) = m.lnI*(m.lnI+1)
?m.lnJ, m.lnI
endif
endfor
endfor

Получаем решение: 84 дом, всего домов 119

Ответ совпал с моим! ;)
Только я немножко по другому подошел
LOCAL i, k
CREATE CURSOR [c_tmp] (n I, s I)
k = 0
FOR i = 1 TO 499
k = k + i
INSERT INTO [c_tmp] VALUES (i, k)
ENDFOR
SELECT a.*, b.n AS [num], b.s AS [sum] ;
FROM [c_tmp] AS [a], ;
[c_tmp] AS [b] ;
WHERE a.s = b.s * 2 ;
AND a.n > 20
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 2 (Гостей: 2)

© 2000-2024 Fox Club 
Яндекс.Метрика