Count of squares that can be drawn without lifting the pencil

• Last Updated : 06 Apr, 2021

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: Input: N = 3
Output:

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 using namespace std; // Function to return the count of// squares that can be formedint countSquares(int n){    return (pow(n, 2) - (2 * n) + 2);} // Driver codeint main(){    int n = 2;     cout << countSquares(n);     return 0;}

Java

 // Java implementation of the approachclass GFG{ // Function to return the count of// squares that can be formedstatic int countSquares(int n){    return (int) (Math.pow(n, 2) - (2 * n) + 2);} // Driver codepublic 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 formeddef countSquares(n) :     return (pow(n, 2) - (2 * n) + 2); # Driver codeif __name__ == "__main__" :     n = 2;     print(countSquares(n)); # This code is contributed by AnkitRai01

C#

 // C# implementation of the approachusing 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


Output:
2

Time Complexity: O(1)

My Personal Notes arrow_drop_up