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

C++에서 길이와 너비 사이의 가능한 최소 차이가 있는 사각형

<시간/>

입력으로 직사각형 영역이 제공됩니다. 목표는 길이와 너비의 차이가 최소가 되도록 직사각형의 변을 찾는 것입니다.

직사각형 면적 =길이 * 너비.

예시

입력 - 면적 =100

출력 −최소 차이가 있는 직사각형의 측면:

길이 =10, 너비 =10

설명 − 면적 =100인 측면.

2 - 50, 4 - 25, 5 - 20, 10 - 10. 최소 차이가 있는 변은 10-10이고 차이 =0입니다. 알다시피 정사각형은 모든 변의 길이가 같은 직사각형입니다.

입력 − 면적 =254

출력 − 최소 차이가 있는 직사각형의 측면:

길이 =127, 너비 =2

설명 − 면적이 254인 직사각형을 만들 수 있는 최소 차이가 있는 변만 127과 2입니다.

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

여기에서 우리는 면적의 제곱근 값을 찾고 최소 차이와 면적=입력 면적을 갖는 값을 찾기 위해 거기에서 1까지 횡단합니다.

  • 정수 변수 Area를 입력으로 사용합니다.

  • 함수 RectangleSides(int area1)는 area1을 취하고 길이와 너비 사이의 가능한 최소 차이로 Rectangle의 변의 길이를 인쇄합니다.

  • 길이, 너비, tmp1을 정수로 취합니다.

  • tmp1=ceil(sqrt(area1))

    설정
  • for 루프를 사용하여 트래버스합니다(int i =tmp1; i> 0; i--).

  • (area1 % i ==0)이면 길이=면적/i 및 너비=i를 설정합니다.

  • break 문을 사용하여 반복을 중지합니다.

  • 면의 길이와 너비를 인쇄하십시오.

예시

#include <bits/stdc++.h>
using namespace std;
void rectangleSides(int area1){
   int length, breadth;
   int tmp1 = ceil(sqrt(area1));
   for (int i = tmp1; i > 0; i--) {
      if (area1 % i == 0) {

         length = ceil(area1 / i);
         breadth = i;
         break;
      }
   }
   cout<<"Sides of Rectangle with minimum difference :"<<endl;
   cout << "Length = " << length << ", Breadth = "   << breadth << endl;
}
int main(){
   int Area = 140;
   rectangleSides(Area);
   return 0;
}

출력

위의 코드를 실행하면 다음과 같은 출력이 생성됩니다.

Sides of Rectangle with minimum difference :
Length = 14, Breadth = 10