Given the position of the king on an **8 X 8 chessboard**, the task is to count the total number of squares that can be visited by the king in **m** moves. The position of the king is denoted using row and column number. **Note:** The square which is currently acquired by the king is already visited and will be counted in the result.**Examples:**

Input:r = 4, c = 4, m = 1Output:9Input:r = 4, c = 4, m = 2Output:25

**Approach:** A king can move one square in any direction (i.e horizontally, vertically and diagonally). So, in one move king can visit its adjacent squares.

So, A square which is within **m** units distance (Considering 1 Square as 1 unit distance) from the king’s current position can be visited in **m** moves.

- For all squares of the chessboard, check if a particular square is at
**m**unit distance away or less from King’s current position. - Increment count, if step 1 is true.
- Print the
**count**

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 visited by king in m moves` `int` `countSquares(` `int` `r, ` `int` `c, ` `int` `m)` `{` ` ` `// To store the count of squares` ` ` `int` `squares = 0;` ` ` `// Check all squares of` ` ` `// the chessboard` ` ` `for` `(` `int` `i = 1; i <= 8; i++) {` ` ` `for` `(` `int` `j = 1; j <= 8; j++) {` ` ` `// Check if square (i, j) is` ` ` `// at a distance <= m units` ` ` `// from king's current position` ` ` `if` `(max(` `abs` `(i - r), ` `abs` `(j - c)) <= m)` ` ` `squares++;` ` ` `}` ` ` `}` ` ` `// Return count of squares` ` ` `return` `squares;` `}` `// Driver code` `int` `main()` `{` ` ` `int` `r = 4, c = 4, m = 1;` ` ` `cout << countSquares(r, c, m) << endl;` ` ` `return` `0;` `}` |

## Java

`// Java implementation of the approach` `class` `GFG {` ` ` `// Function to return the count of squares` ` ` `// that can be visited by king in m moves` ` ` `static` `int` `countSquares(` `int` `r, ` `int` `c, ` `int` `m)` ` ` `{` ` ` `// To store the count of squares` ` ` `int` `squares = ` `0` `;` ` ` `// Check all squares of` ` ` `// the chessboard` ` ` `for` `(` `int` `i = ` `1` `; i <= ` `8` `; i++) {` ` ` `for` `(` `int` `j = ` `1` `; j <= ` `8` `; j++) {` ` ` `// Check if square (i, j) is` ` ` `// at a distance <= m units` ` ` `// from king's current position` ` ` `if` `(Math.max(Math.abs(i - r), Math.abs(j - c)) <= m)` ` ` `squares++;` ` ` `}` ` ` `}` ` ` `// Return count of squares` ` ` `return` `squares;` ` ` `}` ` ` `// Driver code` ` ` `public` `static` `void` `main(String[] args)` ` ` `{` ` ` `int` `r = ` `4` `, c = ` `4` `, m = ` `1` `;` ` ` `System.out.print(countSquares(r, c, m));` ` ` `}` `}` |

## C#

`// C# implementation of the approach` `using` `System;` `class` `GFG {` ` ` `// Function to return the count of squares` ` ` `// that can be visited by king in m moves` ` ` `static` `int` `countSquares(` `int` `r, ` `int` `c, ` `int` `m)` ` ` `{` ` ` `// To store the count of squares` ` ` `int` `squares = 0;` ` ` `// Check all squares of` ` ` `// the chessboard` ` ` `for` `(` `int` `i = 1; i <= 8; i++) {` ` ` `for` `(` `int` `j = 1; j <= 8; j++) {` ` ` `// Check if square (i, j) is` ` ` `// at a distance <= m units` ` ` `// from king's current position` ` ` `if` `(Math.Max(Math.Abs(i - r), Math.Abs(j - c)) <= m)` ` ` `squares++;` ` ` `}` ` ` `}` ` ` `// Return count of squares` ` ` `return` `squares;` ` ` `}` ` ` `// Driver code` ` ` `public` `static` `void` `Main()` ` ` `{` ` ` `int` `r = 4, c = 4, m = 1;` ` ` `Console.Write(countSquares(r, c, m));` ` ` `}` `}` |

## Python3

`# Python implementation of the approach` `# Function to return the count of squares` `# that can be visited by king in m moves` `def` `countSquares(r, c, m):` ` ` `# To store the count of squares` ` ` `squares ` `=` `0` ` ` ` ` `# Check all squares of` ` ` `# the chessboard` ` ` `for` `i ` `in` `range` `(` `1` `, ` `9` `):` ` ` `for` `j ` `in` `range` `(` `1` `, ` `9` `):` ` ` ` ` `# Check if square (i, j) is` ` ` `# at a distance <= m units` ` ` `# from king's current position` ` ` `if` `(` `max` `(` `abs` `(i ` `-` `r), ` `abs` `(j ` `-` `c)) <` `=` `m):` ` ` `squares ` `=` `squares ` `+` `1` ` ` ` ` `# Return count of squares` ` ` `return` `squares` `# Driver code` `r ` `=` `4` `c ` `=` `4` `m ` `=` `1` `print` `(countSquares(r, c, m));` |

## PHP

`<?php` `// PHP implementation of the approach` `// Function to return the count of squares` `// that can be visited by king in m moves` `function` `countSquares(` `$r` `, ` `$c` `, ` `$m` `)` `{` ` ` `// To store the count of squares` ` ` `$squares` `= 0;` ` ` `// Check all squares of` ` ` `// the chessboard` ` ` `for` `(` `$i` `= 1; ` `$i` `<= 8; ` `$i` `++)` ` ` `{` ` ` `for` `(` `$j` `= 1; ` `$j` `<= 8; ` `$j` `++)` ` ` `{` ` ` `// Check if square (i, j) is` ` ` `// at a distance <= m units` ` ` `// from king's current position` ` ` `if` `(max(` `abs` `(` `$i` `- ` `$r` `),` ` ` `abs` `(` `$j` `- ` `$c` `)) <= ` `$m` `)` ` ` `$squares` `++;` ` ` `}` ` ` `}` ` ` `// Return count of squares` ` ` `return` `$squares` `;` `}` `// Driver code` `$r` `= 4;` `$c` `= 4;` `$m` `= 1;` `echo` `countSquares(` `$r` `, ` `$c` `, ` `$m` `);` `// This code is contributed by Ryuga` `?>` |

## Javascript

`<script>` `// Javascript implementation of the approach ` ` ` `// Function to return the count of squares` ` ` `// that can be visited by king in m moves` ` ` `function` `countSquares(r, c, m)` ` ` `{` ` ` `// To store the count of squares` ` ` `let squares = 0;` ` ` ` ` `// Check all squares of` ` ` `// the chessboard` ` ` `for` `(let i = 1; i <= 8; i++) {` ` ` `for` `(let j = 1; j <= 8; j++) {` ` ` ` ` `// Check if square (i, j) is` ` ` `// at a distance <= m units` ` ` `// from king's current position` ` ` `if` `(Math.max(Math.abs(i - r), Math.abs(j - c)) <= m)` ` ` `squares++;` ` ` `}` ` ` `}` ` ` ` ` `// Return count of squares` ` ` `return` `squares;` ` ` `}` `// Driver Code` ` ` `let r = 4, c = 4, m = 1;` ` ` `document.write(countSquares(r, c, m));` ` ` `</script>` |

**Output:**

9

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 industry experts, please refer **DSA Live Classes**