Задано
натуральное число n. Вычислите сумму:
12 + 22 + 32 + ... + n2.
Вход. Одно
натуральное число n (1 ≤ n ≤ 106).
Выход. Выведите значение указанной суммы.
Пример
входа |
Пример
выхода |
2 |
5 |
элементарная
задача – формула
Указанную сумму
можно вычислить с помощью цикла. Однако здесь мы также представим формулу.
Пусть f(n) = 12 + 22
+ 32 + ... + n2.
Рассмотрим сумму:
= (n + 1)3 – 1 = n3 + 3n2 + 3n
Распишем сумму
следующим образом:
= = + + =
= 3f(n) + + n
Приравняем
правые части обоих равенств:
n3 + 3n2
+ 3n = 3 f(n) + 3 (n + 1) n / 2 + n,
n3 + 3 n2 / 2 + n / 2 = 3 f(n),
2 n3 + 3 n2 + n = 6 f(n),
f(n) =
Реализуем
программу при помощи цикла.
scanf("%lld",&n);
for(i = 1; i <= n; i++)
sum += i * i;
printf("%lld\n",sum);
Реализуем
программу при помощи формулы.
scanf("%lld",&n);
sum = n * (n +
1) * (2*n + 1) / 6;
printf("%lld\n",sum);
Java реализация
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
long n = con.nextLong();
long sum = n * (n + 1) * (2 * n + 1) / 6;
System.out.println(sum);
con.close();
}
}
Python реализация – формула
Реализуем
программу при помощи формулы.
n = int(input())
sum = n * (n + 1) * (2*n + 1) // 6;
print(sum)
Python реализация – цикл
Реализуем
программу при помощи цикла.
n = int(input())
sum = 0
for i in range(1, n+1):
sum += i *
i;
print(sum)