给定两个整数N和K ,任务是找到大小为K的正方形内接在大小为N的正方形中的数量。
例子:
Input: N = 4, K = 2
Output: 9
Explanation:
There are 9 squares of size 2 inscribed in a square of size 4.
Input: N = 5, K = 3
Output: 9
Explanation:
There are 9 squares of size 3 inscribed in a square of size 5.
方法:解决问题的关键观察是大小为N的正方形中的正方形总数为(N * (N + 1)* (2*N + 1)) / 6 。因此,从大小为N的正方形中可能出现的大小为K的正方形总数为:
下面是上述方法的实现:
C++
// C++ implementation of the
// above approach
#include
using namespace std;
// Function to calculate the number
// of squares of size K in a square
// of size N
int No_of_squares(int N, int K)
{
// Stores the number of squares
int no_of_squares = 0;
no_of_squares
= (N - K + 1) * (N - K + 1);
return no_of_squares;
}
// Driver Code
int main()
{
// Size of the
// bigger square
int N = 5;
// Size of
// smaller square
int K = 3;
cout << No_of_squares(N, K);
return 0;
}
Java
// Java implementation of the
// above approach
import java.util.*;
class GFG{
// Function to calculate the
// number of squares of size
// K in a square of size N
static int No_of_squares(int N,
int K)
{
// Stores the number
// of squares
int no_of_squares = 0;
no_of_squares = (N - K + 1) *
(N - K + 1);
return no_of_squares;
}
// Driver Code
public static void main(String[] args)
{
// Size of the
// bigger square
int N = 5;
// Size of
// smaller square
int K = 3;
System.out.print(No_of_squares(N, K));
}
}
// This code is contributed by Princi Singh
Python3
# Python3 implementation of the
# above approach
# Function to calculate the
# number of squares of size
# K in a square of size N
def No_of_squares(N, K):
# Stores the number
# of squares
no_of_squares = 0;
no_of_squares = (N - K + 1) * (N - K + 1);
return no_of_squares;
# Driver Code
if __name__ == '__main__':
# Size of the
# bigger square
N = 5;
# Size of
# smaller square
K = 3;
print(No_of_squares(N, K));
# This code is contributed by 29AjayKumar
C#
// C# implementation of the
// above approach
using System;
class GFG{
// Function to calculate the
// number of squares of size
// K in a square of size N
static int No_of_squares(int N, int K)
{
// Stores the number
// of squares
int no_of_squares = 0;
no_of_squares = (N - K + 1) *
(N - K + 1);
return no_of_squares;
}
// Driver Code
public static void Main(String[] args)
{
// Size of the
// bigger square
int N = 5;
// Size of
// smaller square
int K = 3;
Console.Write(No_of_squares(N, K));
}
}
// This code is contributed by Amit Katiyar
Javascript
输出:
9
时间复杂度: O(1)
辅助空间: O(1)
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。