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);
}
}




Сообщение было отмечено Mazay33 как решение
