Given an integer N, the task is to find the count of squares of side 1 that can be drawn without lifting the pencil, starting at one corner of an N * N grid and never visiting an edge twice.
Input: N = 2
Output: 2
Input: N = 3
Output: 5
Approach: It can be observed that for the values of N = 1, 2, 3, …, a series will be formed as 1, 2, 5, 10, 17, 26, 37, 50, … whose Nth term is (N2 – (2 * N) + 2)
Below is the implementation of the above approach:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; // Function to return the count of // squares that can be formed int countSquares( int n) { return ( pow (n, 2) - (2 * n) + 2); } // Driver code int main() { int n = 2; cout << countSquares(n); return 0; } |
Java
// Java implementation of the approach class GFG { // Function to return the count of // squares that can be formed static int countSquares( int n) { return ( int ) (Math.pow(n, 2 ) - ( 2 * n) + 2 ); } // Driver code public static void main(String []args) { int n = 2 ; System.out.println(countSquares(n)); } } // This code is contributed by Rajput-Ji |
Python3
# Python3 implementation of the approach # Function to return the count of # squares that can be formed def countSquares(n) : return ( pow (n, 2 ) - ( 2 * n) + 2 ); # Driver code if __name__ = = "__main__" : n = 2 ; print (countSquares(n)); # This code is contributed by AnkitRai01 |
C#
// C# implementation of the approach using System; class GFG { // Function to return the count of // squares that can be formed static int countSquares( int n) { return ( int ) (Math.Pow(n, 2) - (2 * n) + 2); } // Driver code public static void Main(String []args) { int n = 2; Console.WriteLine(countSquares(n)); } } // This code is contributed by 29AjayKumar |
Javascript
<script> // Javascript implementation of the approach // Function to return the count of // squares that can be formed function countSquares(n) { return (Math.pow(n, 2) - (2 * n) + 2); } // Driver code var n = 2; document.write(countSquares(n)); </script> |
2
Time Complexity: O(1)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!