Related Articles

# Sum of alternating sign Squares of first N natural numbers

• Last Updated : 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.

1. For each number in 1 to N, find its square
2. Add these squares with alternating sign
3. This would give the required sum.

Below is the implementation of the above approach:

## C++

 // C++ program to find Sum of alternating// sign Squares of first N natural numbers #include 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

 // 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

 # 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#

 // 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

## Javascript

 
Output:
-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++

 // C++ program to find Sum of alternating// sign Squares of first N natural numbers #include 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

 // 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

 # 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#

 // 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

## Javascript

 
Output:
-3

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

My Personal Notes arrow_drop_up