Given a series 12 + 32 + 52 + 72 + . . . + (2*n - 1)2, find the sum of the series.
Examples:
Input: n = 4
Output: 84
Explanation: sum = 12 + 32 + 52 + 72 = 1 + 9 + 25 + 49 = 84Input: n = 10
Output: 1330
Explanation: sum = 12 + 32 + 52 + 72 + 92 + 112 + 132 + 152 + 172 + 192 = 1 + 9 + 24 + 49 + . . . + 361 = 1330
Table of Content
Naive Approach - O(n) time and O(1) space
#include <bits/stdc++.h>
using namespace std;
int sumOfSeries(int n) {
int sum = 0;
for (int i = 1; i <= n; i++)
sum = sum + (2 * i - 1) * (2 * i - 1);
return sum;
}
int main() {
int n = 10;
cout << sumOfSeries(n);
return 0;
}
import java.io.*;
class GfG {
static int sumOfSeries(int n) {
int sum = 0;
for (int i = 1; i <= n; i++)
sum = sum + (2 * i - 1) * (2 * i - 1);
return sum;
}
public static void main(String[] args) {
int n = 10;
System.out.println(sumOfSeries(n));
}
}
import math
def sumOfSeries(n):
sum = 0
for i in range(1, n + 1):
sum = sum + (2 * i - 1) * (2 * i - 1)
return sum
if __name__ == "__main__":
n = 10
print(sumOfSeries(n))
using System;
class GfG {
static int sumOfSeries(int n) {
int sum = 0;
for (int i = 1; i <= n; i++)
sum = sum + (2 * i - 1) * (2 * i - 1);
return sum;
}
public static void Main() {
int n = 10;
Console.Write(sumOfSeries(n));
}
}
function sumOfSeries(n) {
let sum = 0;
for(let i = 1; i <= n; i++)
sum = sum + (2 * i - 1) *
(2 * i - 1);
return sum;
}
// Driver Code
let n = 10;
console.log(sumOfSeries(n));
Output
1330
[Expected approach] Using formula - O(1) time and O(1) space
The series is formed by squaring the first n odd numbers:
Sn = 12 + 32 + 52 + ⋯ + (2n−1)2
Sn = ( n (2n − 1) (2n + 1) )/3Example: n = 3
S3 = 3 (2*3 - 1) (2*3 + 1) ) / 3 = (3 * 5 * 7 )/3 = 35
#include <bits/stdc++.h>
using namespace std;
int sumOfSeries(int n) {
return (n * (2 * n - 1) * (2 * n + 1)) / 3;
}
int main() {
int n = 10;
cout << sumOfSeries(n);
return 0;
}
import java.io.*;
import java.util.*;
class GfG {
static int sumOfSeries(int n) {
return (n * (2 * n - 1) * (2 * n + 1)) / 3;
}
public static void main(String[] args) {
int n = 10;
System.out.println(sumOfSeries(n));
}
}
import math
def sumOfSeries(n):
return int((n * (2 * n - 1) * (2 * n + 1)) / 3)
if __name__ == "__main__":
n = 10
print(sumOfSeries(n))
using System;
class GfG {
static int sumOfSeries(int n) {
return (n * (2 * n - 1) * (2 * n + 1)) / 3;
}
public static void Main() {
int n = 10;
Console.Write(sumOfSeries(n));
}
}
function sumOfSeries(n) {
return (n * (2 * n - 1) *
(2 * n + 1)) / 3;
}
// Driver code
let n = 10;
console.log(sumOfSeries(n));
Output
1330
Time Complexity: O(1)
Auxiliary space: O(1) since using constant variables