>  기사  >  백엔드 개발  >  C++에서는 다음을 중국어로 번역합니다. 길이와 너비의 차이가 가장 작은 직사각형을 찾습니다.

C++에서는 다음을 중국어로 번역합니다. 길이와 너비의 차이가 가장 작은 직사각형을 찾습니다.

王林
王林앞으로
2023-09-16 13:21:09626검색

C++에서는 다음을 중국어로 번역합니다. 길이와 너비의 차이가 가장 작은 직사각형을 찾습니다.

직사각형 영역을 입력으로 제공합니다. 목표는 길이와 너비의 차이를 최소화하는 직사각형의 변을 찾는 것입니다.

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

Input− 면적 = 100

Output− 차이가 가장 작은 직사각형의 변:

길이 = 10, 너비 = 10

설명− 면적 = 100인 변.

2-50, 4-25, 5-20, 10-10. 차이가 가장 작은 쪽은 10-10, 차이 = 0입니다. 우리 모두 알고 있듯이 정사각형은 모든 변의 길이가 같은 직사각형입니다.

Input− 면적 = 254

Output− 최소 차이가 있는 직사각형의 변:

길이 = 127, 너비 = 2

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

아래 프로그램에서 사용한 방법은 다음과 같습니다.

여기서 면적의 제곱근 값을 구하고 거기에서 1까지 순회하여 차이가 가장 작은 값을 구하며 면적 = 입력 면적을 찾습니다.

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

    li>
  • fragmentSides(int Area1) 함수는 Area1을 받아들이고 길이와 너비 사이의 차이가 가장 작은 직사각형의 측면 길이를 인쇄합니다.

  • 정수 길이, 너비, tmp1을 가져옵니다.

  • Set tmp1=ceil(sqrt(area1))

  • for 루프를 사용하여 순회합니다(int i = tmp1; i > 0; i--).

  • (area1 % i == 0)이면 길이=area/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;
}

Output

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

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

위 내용은 C++에서는 다음을 중국어로 번역합니다. 길이와 너비의 차이가 가장 작은 직사각형을 찾습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제