Программинг пазел

и задачки для интервью.
Y+A=LOVE
Уже с Приветом
Posts: 467
Joined: 01 Feb 2005 19:21
Location: 666

Программинг пазел

Post by Y+A=LOVE »

Что вернет функция (в терминах функции от n)?

int test(int n)
{
int result = 0;
for (int i = 0; i < n; i++)
for (int j = i + 1; j < (n + 1); j++)
for (int k = 1; k < (j + 1); k++)
result += 1;

rerurn result;
}
vaduz
Уже с Приветом
Posts: 27652
Joined: 15 Jul 2002 17:05
Location: MD

Re: Программинг пазел

Post by vaduz »

Сумма квадратов от 1 до n
User avatar
John Smith
Уже с Приветом
Posts: 1679
Joined: 04 Oct 2006 23:30
Location: Las Vegas

Re: Программинг пазел

Post by John Smith »

User avatar
AndreyT
Уже с Приветом
Posts: 3009
Joined: 14 Apr 2004 01:11
Location: SFBA (было: Минск, Беларусь)

Re: Программинг пазел

Post by AndreyT »

Убираем цикл по `k`

Code: Select all

for (int i = 0; i < n; i++)
  for (int j = i + 1; j < (n + 1); j++)
     result += j;


Теперь видно, что цикл по `j` есть сумма членов арифметической прогрессии `i+1 ... n` с шагом 1, но писать формулу суммы не будем, а просто обратим внимание, что цикл по `i` итерирует по прогрессиям `1 ... n`, `2 ... n`, ..., `n`, т.е. если выписать все "в столбик", то мы получаем сумму таких чисел

Code: Select all

1 2 3 4 ... n
  2 3 4 ... n
    3 4 ... n
      4 ... n
        ...
            n


Что есть 1+2^2+3^2+4^2+5^2+...+n^2, т.е. цикл вычисляет сумму квадратов целых чисел от 1 до n.
Best regards,
Андрей
User avatar
John Smith
Уже с Приветом
Posts: 1679
Joined: 04 Oct 2006 23:30
Location: Las Vegas

Re: Программинг пазел

Post by John Smith »

Забавно, как с интервалом в одну минуту выступило сразу трое :-)
Y+A=LOVE
Уже с Приветом
Posts: 467
Joined: 01 Feb 2005 19:21
Location: 666

Re: Программинг пазел

Post by Y+A=LOVE »

John Smith wrote:Вот это?

Корект. Идея то вобщем была вывести формулу для суммы квадратов. Но теперь все можно найти в долбаном интернете. :(

Return to “Головоломки”