Как найти сумму квадратов в java

Improve Article

Save Article

Like Article

  • Read
  • Discuss
  • 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's user avatar

    angry

    8,64717 золотых знаков72 серебряных знака180 бронзовых знаков

    задан 20 мар 2012 в 16:41

    Burunduk's user avatar

    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's user avatar

    Spectre

    12.3k1 золотой знак24 серебряных знака33 бронзовых знака

    ответ дан 20 мар 2012 в 18:38

    ReinRaus's user avatar

    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

    Spectre's user avatar

    SpectreSpectre

    12.3k1 золотой знак24 серебряных знака33 бронзовых знака

    3

    0 / 0 / 0

    Регистрация: 17.02.2016

    Сообщений: 9

    1

    Задача ‘Сумма квадратов’

    17.02.2016, 00:13. Показов 9455. Ответов 3


    Студворк — интернет-сервис помощи студентам

    Не могу понять как написать эту программу на Java.
    По данному натуральному n вычислите сумму 1^2+2^2+…+n^2.

    Входные данные:
    Вводится единственное число n.

    Выходные данные:
    Необходимо вывести вычисленную сумму.

    Примеры
    входные данные
    2
    выходные данные
    5



    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

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

    Решение

    Java
    1
    2
    3
    4
    5
    6
    7
    
        public static void main(String[] args) {
            int n = 2, sum = 0;
            for (int i = 1; i <= n; i++) {
                sum += Math.pow(i, 2);
            }
            System.out.println(sum);
        }



    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 до 100, для которых сумма квадратов первого и второго чисел равны квадрату третьего числа
    Есть задача, Найти все тройки чисел в диапазоне от 1 до 100, для которых сумма квадратов первого и…

    Массивы: сумма, произведение, сумма квадратов, среднее арифметическое всех элементов, сумму шести первых
    ПОМОГИТЕ ПОЖАЛУСТА

    1.определить:
    а)сумму всех элементов массива;
    б)произведение всех…

    Массив: Присвоить S значение 1, если сумма квадратов элемента массива X больше суммы квадратов элементов массива Y…
    Заданы два массива X (5) Y (5) переменной s присвоить значение 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);
        }
    }

    Понравилась статья? Поделить с друзьями:
  • Нашел документы как вернуть за вознаграждение
  • Как исправить искривление глаза
  • Как найти цвет в иллюстраторе по номеру
  • Err network access denied chrome как исправить
  • Как найти людей в инстаграме через телефон