Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 직사각형의 정사각형 수 계산


L>=B가 되도록 길이가 L이고 너비가 B인 직사각형이 제공됩니다. 목표는 LXB 크기의 직사각형이 수용할 수 있는 정사각형의 수를 찾는 것입니다.

C++에서 직사각형의 정사각형 수 계산

위 그림은 3 X 2 크기의 직사각형을 보여줍니다. 2, 2X2 정사각형과 6,1X1 정사각형이 있습니다.

총 제곱=6+2=8.

  • LXB 크기의 모든 직사각형에는 1X1 정사각형의 L*B 수가 있습니다.

  • 가장 큰 사각형은 BXB 크기입니다.

  • L=B=1인 경우 제곱 =1입니다.

  • L=B=2의 경우 제곱 =1 + 4 =5. ( 2X2의 1, 1X1의 4)

  • L=B=3의 경우 제곱 =1 + 4 + 9 =14. ( 3X3의 1, 2X2의 4, 1X1의 9)

  • L=B=4의 경우 제곱 =1 + 4 + 9 + 16 =30 ( 4X4의 1, 3X3의 4, 2X2의 9, 1X1의 16)

  • ……………….

  • 모든 BXB 직사각형에 대해 정사각형의 수는

    입니다.
for ( i=1 to B )
No. of squares + = i*i.

L>B일 때 더 많은 사각형이 추가됩니다. L=B+1일 때(B보다 1개의 추가 열). 그러면 추가된 제곱은 L + ( L-1) + ...+3+2+1 =L(L+1)/2

가 됩니다.

따라서 추가 L-B 열의 경우 추가되는 사각형은 ( L-B ) * (B)(B+1)/2

가 됩니다.
  • 총 제곱은 BXB + (L-B) * (L)(L+1)/2의 제곱입니다.

  • 8단계에서 계열(1 + 4 + 9 +......BXB)에 대해 공식 B(B+1)(2B+1)/6을 사용할 수도 있습니다.

예를 들어 이해합시다.

입력 - L=4, B=2

출력 − 직사각형의 정사각형 개수 − 11

설명 − 1X1의 정사각형 8개와 2X2의 정사각형 3개.

C++에서 직사각형의 정사각형 수 계산

입력 - L=3, B=3

출력 − 직사각형의 정사각형 개수 − 14

설명 − 1X1의 9개 정사각형, 2X2의 4개 및 3X3의 1개.

C++에서 직사각형의 정사각형 수 계산

아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.

  • 직사각형의 크기에 대해 길이와 너비를 정수로 취합니다.

  • numofSquares(int l, int b) 함수는 치수를 가져와서 크기가 lXb인 직사각형의 정사각형 수를 반환합니다.

  • 가장 큰 사각형 bXb의 경우. for 루프를 1에서 b까지 사용하고 각 i*i를 정사각형에 추가합니다.

  • 이제 l>b인 경우. 새로 추가된 제곱은 (l-b)(b)(b+1)/2입니다. 이것을 사각형에 추가하십시오.

  • 원하는 결과로 사각형을 반환합니다.

참고 − 길이>=너비

유지

예시

#include<iostream>
using namespace std;
int numofSquares(int l, int b){
   int squares=0;
   for(int i=1;i<=b;i++) //squares inside biggest square of size breadth X breadth{
      squares += i*i;
   }
   squares+=(l-b)*b*(b+1)/2;
   return squares;
}
int main(){
   int length = 5, breadth = 4; //keep length always >= breadth
   cout << "Count of squares is :"<< numofSquares(length,breadth);
}

출력

위의 코드를 실행하면 다음 출력이 생성됩니다 -

Count of squares is :40