Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article
Given a positive integer N. The task is to find 12 + 22 + 32 + ….. + N2.
Examples:
Input : N = 4 Output : 30 12 + 22 + 32 + 42 = 1 + 4 + 9 + 16 = 30 Input : N = 5 Output : 55
Method 1: O(N) The idea is to run a loop from 1 to n and for each i, 1 <= i <= n, find i2 to sum.
Java
import
java.io.*;
class
GFG {
static
int
squaresum(
int
n)
{
int
sum =
0
;
for
(
int
i =
1
; i <= n; i++)
sum += (i * i);
return
sum;
}
public
static
void
main(String args[])
throws
IOException
{
int
n =
4
;
System.out.println(squaresum(n));
}
}
Time Complexity : O(n)
Auxiliary Space: O(1)
Method 2:
Proof:
We know, (k + 1)3 = k3 + 3 * k2 + 3 * k + 1 We can write the above identity for k from 1 to n: 23 = 13 + 3 * 12 + 3 * 1 + 1 ......... (1) 33 = 23 + 3 * 22 + 3 * 2 + 1 ......... (2) 43 = 33 + 3 * 32 + 3 * 3 + 1 ......... (3) 53 = 43 + 3 * 42 + 3 * 4 + 1 ......... (4) ... n3 = (n - 1)3 + 3 * (n - 1)2 + 3 * (n - 1) + 1 ......... (n - 1) (n + 1)3 = n3 + 3 * n2 + 3 * n + 1 ......... (n) Putting equation (n - 1) in equation n, (n + 1)3 = (n - 1)3 + 3 * (n - 1)2 + 3 * (n - 1) + 1 + 3 * n2 + 3 * n + 1 = (n - 1)3 + 3 * (n2 + (n - 1)2) + 3 * ( n + (n - 1) ) + 1 + 1 By putting all equation, we get (n + 1)3 = 13 + 3 * Σ k2 + 3 * Σ k + Σ 1 n3 + 3 * n2 + 3 * n + 1 = 1 + 3 * Σ k2 + 3 * (n * (n + 1))/2 + n n3 + 3 * n2 + 3 * n = 3 * Σ k2 + 3 * (n * (n + 1))/2 + n n3 + 3 * n2 + 2 * n - 3 * (n * (n + 1))/2 = 3 * Σ k2 n * (n2 + 3 * n + 2) - 3 * (n * (n + 1))/2 = 3 * Σ k2 n * (n + 1) * (n + 2) - 3 * (n * (n + 1))/2 = 3 * Σ k2 n * (n + 1) * (n + 2 - 3/2) = 3 * Σ k2 n * (n + 1) * (2 * n + 1)/2 = 3 * Σ k2 n * (n + 1) * (2 * n + 1)/6 = Σ k2
Java
import
java.io.*;
class
GFG {
static
int
squaresum(
int
n)
{
return
(n * (n +
1
) * (
2
* n +
1
)) /
6
;
}
public
static
void
main(String args[])
throws
IOException
{
int
n =
4
;
System.out.println(squaresum(n));
}
}
Avoiding early overflow:
For large n, the value of (n * (n + 1) * (2 * n + 1)) would overflow. We can avoid overflow up to some extent using the fact that n*(n+1) must be divisible by 2.
Java
import
java.io.*;
import
java.util.*;
class
GFG {
public
static
int
squaresum(
int
n)
{
return
(n * (n +
1
) /
2
) * (
2
* n +
1
) /
3
;
}
public
static
void
main(String[] args)
{
int
n =
4
;
System.out.println(squaresum(n));
}
}
Time complexity: O(1) as it is doing constant operations
Auxiliary Space: O(1) as it is using constant space
Please refer complete article on Sum of squares of first n natural numbers for more details!
Last Updated :
12 Sep, 2022
Like Article
Save Article
Нужна программа, которая вычисляет сумму квадратов чисел от 1 до N
class Sum{
public static void main(String[] args){
int n = 3; // В данном случае N = 3
int res = 0;
for(int b = 1; b < n; b++){
res = n * (n + 1) * (2 * n + 1) / 6;
}
System.out.println( res );
}
}
angry
8,64717 золотых знаков72 серебряных знака180 бронзовых знаков
задан 20 мар 2012 в 16:41
1
Может быть я чего-то не понимаю, но в какой зависимости находится res от b?
class Sum{
public static void main(String[] args){
int n = 3; // В данном случае N = 3
int res = 0;
res = n * (n + 1) * (2 * n + 1) / 6;
System.out.println( res );
}
}
Абсолютно тоже самое.
Spectre
12.3k1 золотой знак24 серебряных знака33 бронзовых знака
ответ дан 20 мар 2012 в 18:38
ReinRausReinRaus
17.7k3 золотых знака43 серебряных знака84 бронзовых знака
5
можно так:
class Sum{
public static void main(String[] args){
int res = 0;
for(int b = 1, n=3; b < n; b++, res = n * (n + 1) * (2 * n + 1) / 6);
System.out.println( res );
}
но зачем?
ответ дан 20 мар 2012 в 16:55
SpectreSpectre
12.3k1 золотой знак24 серебряных знака33 бронзовых знака
3
0 / 0 / 0 Регистрация: 17.02.2016 Сообщений: 9 |
|
1 |
|
Задача ‘Сумма квадратов’17.02.2016, 00:13. Показов 9455. Ответов 3
Не могу понять как написать эту программу на Java. Входные данные: Выходные данные: Примеры
0 |
90 / 89 / 23 Регистрация: 08.07.2014 Сообщений: 548 |
|
17.02.2016, 07:04 |
2 |
С помощью цикла.
0 |
megastriker 53 / 53 / 39 Регистрация: 05.12.2010 Сообщений: 261 |
||||
17.02.2016, 09:57 |
3 |
|||
Решение
1 |
0 / 0 / 0 Регистрация: 17.02.2016 Сообщений: 9 |
|
17.02.2016, 22:53 [ТС] |
4 |
Спасибо, понял в чем ошибся)
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
17.02.2016, 22:53 |
Помогаю со студенческими работами здесь
Массивы: сумма, произведение, сумма квадратов, среднее арифметическое всех элементов, сумму шести первых 1.определить:
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 4 |
Практикум по программированию. Основы. Циклы. Сумма квадратов чисел
From AsIsWiki
Jump to: navigation,
search
Задачи ·
Дальше
Java
import java.util.Scanner; public class Task01 { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println(); System.out.println(" Сумма квадратов чисел от 1 до N"); System.out.println("---------------------------------"); System.out.print(" Введите N: "); long n = in.nextLong(); long s = 0; for (long i = 1; i <= n; i++) { s += i * i; } System.out.println("---------------------------------"); System.out.printf(" S = %dn", s); } }
C++
// g++ 4.2 #include <iostream> using namespace std; int main() { long n; cout << "n Сумма квадратов чисел от 1 до Nn"; cout << "---------------------------------n"; cout << " Введите N: "; cin >> n; long s = 0; for (long i = 1; i <= n; i++) { s += i * i; } cout << "---------------------------------n"; printf(" S = %ldnn", s); return 0; }
Python
# Python 3 print('n Сумма квадратов чисел от 1 до N') print('---------------------------------') n = int(input(' Введите N: ')) s = 0 for i in range(1, n + 1): s += i * i print('---------------------------------') print(' S = %ld' % s)
Pascal
JavaScript
<html lang="ru"> <head> <meta charset="UTF-8"> <script> function calc() { var n = document.getElementById("nId").value; var s = 0; for (var i = 1; i <= n; i++) { s += i * i; } document.getElementById("resultId").innerHTML = "S = " + s; } </script> </head> <body> <p>Сумма квадратов чисел от 1 до N</p> <hr> <p>Введите N: <input id="nId" size="5"></p> <hr> <p id="resultId"></p> <button onclick="calc()">Рассчитать</button> </body> </html>
Задачи ·
Дальше
Формулировка задачи
Напишите программу, которая вычисляет сумму:
- а) первых n натуральных чисел;
- б) квадратов первых n натуральных чисел;
- в) всех чётных чисел в диапазоне от 1 до n;
- г) всех двузначных чисел.
Решение
import java.util.Scanner; public class CalcNaturalNumbers { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Введите число n: "); int n = scanner.nextInt(); long sumN = 0; long sumSqrt = 0; long sumEven = 0; long sumTwoDigit = 0; for (int i = 1; i <= n; i++) { sumN = sumN + i; sumSqrt = sumSqrt + i * i; if (i % 2 == 0) { sumEven = sumEven + i; } } for (int i = 10; i < 99; i++) { sumTwoDigit = sumTwoDigit + i; } System.out.println("Сумма первых n натуральных чисел: " + sumN); System.out.println("Сумма квадратов первых n натуральных чисел: " + sumSqrt); System.out.println("Сумма всех чётных чисел в диапазоне от 1 до n: " + sumEven); System.out.println("Сумма всех двузначных чисел: " + sumTwoDigit); } }