Sum of alternating sign Squares of first N natural numbers - GeeksforGeeks

08 Apr, 2021
Given a number N, the task is to find the sum of alternating sign squares of first N natural numbers, i.e., 
12 – 22 + 32 – 42 + 52 – 62 + ....  
Examples:  
Input: N = 2
Output: 5
Explanation:
Required sum = 12 - 22 = -1

Input: N = 8
Output: 36
Explanation:
Required sum 
= 12 - 22 + 32 - 42 + 52 - 62 + 72 - 82 
= 36
 
Naive approach: O(N) The Naive or Brute force approach to solve this problem states to find the square of each number from 1 to N and add them with alternating sign in order to get the required sum.  
For each number in 1 to N, find its squareAdd these squares with alternating signThis would give the required sum.
For each number in 1 to N, find its square
Add these squares with alternating sign
This would give the required sum.
Below is the implementation of the above approach:  
C++
Java
Python3
C#
Javascript
// C++ program to find Sum of alternating// sign Squares of first N natural numbers #include <iostream>using namespace std; // Function to calculate// the alternating sign sumint summation(int n){     // Variable to store the sum    int sum = 0;     // Loop to iterate each number    // from 1 to N    for (int i = 1; i <= n; i++) {         // The alternating sign is put        // by checking if the number        // is even or odd        if (i % 2 == 1)            // Add the square with the sign            sum += (i * i);         else            // Add the square with the sign            sum -= (i * i);    }    return sum;} // Driver codeint main(){    int N = 2;    cout << summation(N);    return 0;}
// Java program to find Sum of alternating// sign Squares of first N natural numbersclass GFG{             // Function to calculate    // the alternating sign sum    static int summation(int n)    {             // Variable to store the sum        int sum = 0;             // Loop to iterate each number        // from 1 to N        for (int i = 1; i <= n; i++) {                 // The alternating sign is put            // by checking if the number            // is even or odd            if (i % 2 == 1)                 // Add the square with the sign                sum += (i * i);                 else                 // Add the square with the sign                sum -= (i * i);        }        return sum;    }         // Driver code    public static void main (String[] args)    {        int N = 2;        System.out.println(summation(N));    }} // This code is contributed by AnkitRai01
# Python3 program to find Sum of alternating# sign Squares of first N natural numbers # Function to calculate# the alternating sign sumdef summation(n) :     # Variable to store the sum    sum = 0;     # Loop to iterate each number    # from 1 to N    for i in range(1, n + 1) :         # The alternating sign is put        # by checking if the number        # is even or odd        if (i % 2 == 1) :            # Add the square with the sign            sum += (i * i);         else :            # Add the square with the sign            sum -= (i * i);         return sum;  # Driver codeif __name__ == "__main__" :     N = 2;    print(summation(N));     # This code is contributed by AnkitRai01
// C# program to find Sum of alternating// sign Squares of first N natural numbersusing System; class GFG{             // Function to calculate    // the alternating sign sum    static int summation(int n)    {             // Variable to store the sum        int sum = 0;             // Loop to iterate each number        // from 1 to N        for (int i = 1; i <= n; i++) {                 // The alternating sign is put            // by checking if the number            // is even or odd            if (i % 2 == 1)                 // Add the square with the sign                sum += (i * i);                 else                 // Add the square with the sign                sum -= (i * i);        }        return sum;    }         // Driver code    public static void Main()    {        int N = 2;        Console.WriteLine(summation(N));    }} // This code is contributed by AnkitRai01
<script>// JavaScript program to find Sum of alternating// sign Squares of first N natural numbers       // Function to calculate    // the alternating sign sum    function summation(n)    {           // Variable to store the sum        let sum = 0;           // Loop to iterate each number        // from 1 to N        for (let i = 1; i <= n; i++) {               // The alternating sign is put            // by checking if the number            // is even or odd            if (i % 2 == 1)                // Add the square with the sign                sum += (i * i);               else                // Add the square with the sign                sum -= (i * i);        }        return sum;    }       // Driver code     let N = 2;    document.write(summation(N)); // This code is contributed by Surbhi Tyagi </script>
-3
 
Efficient Approach: O(1) There exists a formula for finding the sum of squares of first n numbers with alternating signs: 
    
How does this work?  
We can prove this formula using induction.
We can easily see that the formula is true for
n = 1 and n = 2 as sums are 1 and -3 respectively.

Let it be true for n = k-1. So sum of k-1 numbers
is (-1)k(k - 1) * k / 2

In the following steps, we show that it is true 
for k assuming that it is true for k-1.


Sum of k numbers
 =(-1)k (Sum of k-1 numbers + k2)
 =(-1)k+1 ((k - 1) * k / 2 + k2)
 =(-1)k+1 (k * (k + 1) / 2), which is true.
Hence inorder to find the sum of alternating sign squares of first N natural numbers, simply compute the formula and print the result.  
C++
Java
Python3
C#
Javascript
// C++ program to find Sum of alternating// sign Squares of first N natural numbers #include <iostream>using namespace std; // Function to calculate// the alternating sign sumint summation(int n){     // Variable to store the absolute sum    int abs_sum = n * (n + 1) / 2;     // Variable to store the sign    int sign = n + 1 % 2 == 0 ? 1 : -1;     // Variable to store the resultant sum    int result_sum = sign * abs_sum;     return result_sum;} // Driver codeint main(){    int N = 2;    cout << summation(N);    return 0;}
// Java program to find Sum of alternating// sign Squares of first N natural numbersclass GFG{         // Function to calculate    // the alternating sign sum    static int summation(int n)    {             // Variable to store the absolute sum        int abs_sum = n * (n + 1) / 2;             // Variable to store the sign        int sign = n + 1 % 2 == 0 ? 1 : -1;             // Variable to store the resultant sum        int result_sum = sign * abs_sum;             return result_sum;    }         // Driver code    public static void main (String[] args)    {        int N = 2;        System.out.println(summation(N));    }} // This code is contributed by AnkitRai01
# Python3 program to find Sum of alternating# sign Squares of first N natural numbers # Function to calculate# the alternating sign sumdef summation(n) :     # Variable to store the absolute sum    abs_sum = n * (n + 1) // 2;     # Variable to store the sign    sign = 1 if ((n + 1) % 2 == 0 ) else -1;     # Variable to store the resultant sum    result_sum = sign * abs_sum;     return result_sum; # Driver codeif __name__ == "__main__" :     N = 2;    print(summation(N)); # This code is contributed by AnkitRai01
// C# program to find Sum of alternating// sign Squares of first N natural numbers using System; public class GFG{         // Function to calculate    // the alternating sign sum    static int summation(int n)    {             // Variable to store the absolute sum        int abs_sum = (int)(n * (n + 1) / 2);             // Variable to store the sign        int sign = n + 1 % 2 == 0 ? 1 : -1;             // Variable to store the resultant sum        int result_sum = sign * abs_sum;             return result_sum;    }         // Driver code    public static void Main()    {        int N = 2;        Console.WriteLine(summation(N));    }} // This code is contributed by AnkitRai01
<script> // Javascript program to find Sum of alternating// sign Squares of first N natural numbers // Function to calculate// the alternating sign sumfunction summation(n){     // Variable to store the absolute sum    var abs_sum = n * (n + 1) / 2;     // Variable to store the sign    var sign = n + 1 % 2 == 0 ? 1 : -1;     // Variable to store the resultant sum    var result_sum = sign * abs_sum;     return result_sum;} // Driver codevar N = 2;document.write(summation(N)); // This code is contributed by rutvik_56.</script>
-3
 
ankthon
Akanksha_Rai
surbhityagi15
rutvik_56
maths-perfect-square
Natural Numbers
Mathematical
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Program to print prime numbers from 1 to N.
Segment Tree | Set 1 (Sum of given range)
Count all possible paths from top left to bottom right of a mXn matrix
Modular multiplicative inverse
Program to multiply two matrices
Fizz Buzz Implementation
Check if a number is Palindrome
Count ways to reach the n'th stair
Merge two sorted arrays with O(1) extra space
Min Cost Path | DP-6