# Sum of alternating sign Squares of first N natural numbers

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


## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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;     // Fucntion to calculate  // the alternating sign sum  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  int main()  {      int N = 2;      cout << summation(N);      return 0;  }

## Java

 // Java program to find Sum of alternating  // sign Squares of first N natural numbers  class GFG  {                 // Fucntion 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      # Fucntion to calculate   # the alternating sign sum   def 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 code   if __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;     class GFG  {                 // Fucntion 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

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;     // Fucntion to calculate  // the alternating sign sum  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  int main()  {      int N = 2;      cout << summation(N);      return 0;  }

## Java

 // Java program to find Sum of alternating  // sign Squares of first N natural numbers  class GFG   {             // Fucntion 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      # Fucntion to calculate   # the alternating sign sum   def 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 code   if __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   {             // Fucntion 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

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.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Improved By : AnkitRai01

Article Tags :
Practice Tags :

2

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.