Что вернет функция (в терминах функции от 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;
}
Программинг пазел
-
- Уже с Приветом
- Posts: 27652
- Joined: 15 Jul 2002 17:05
- Location: MD
Re: Программинг пазел
Сумма квадратов от 1 до n
-
- Уже с Приветом
- Posts: 1679
- Joined: 04 Oct 2006 23:30
- Location: Las Vegas
-
- Уже с Приветом
- Posts: 3009
- Joined: 14 Apr 2004 01:11
- Location: SFBA (было: Минск, Беларусь)
Re: Программинг пазел
Убираем цикл по `k`
Теперь видно, что цикл по `j` есть сумма членов арифметической прогрессии `i+1 ... n` с шагом 1, но писать формулу суммы не будем, а просто обратим внимание, что цикл по `i` итерирует по прогрессиям `1 ... n`, `2 ... n`, ..., `n`, т.е. если выписать все "в столбик", то мы получаем сумму таких чисел
Что есть 1+2^2+3^2+4^2+5^2+...+n^2, т.е. цикл вычисляет сумму квадратов целых чисел от 1 до n.
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,
Андрей
Андрей
-
- Уже с Приветом
- Posts: 1679
- Joined: 04 Oct 2006 23:30
- Location: Las Vegas
Re: Программинг пазел
Забавно, как с интервалом в одну минуту выступило сразу трое
-
- Уже с Приветом
- Posts: 467
- Joined: 01 Feb 2005 19:21
- Location: 666
Re: Программинг пазел
John Smith wrote:Вот это?
Корект. Идея то вобщем была вывести формулу для суммы квадратов. Но теперь все можно найти в долбаном интернете.