입력으로 직사각형 영역이 제공됩니다. 목표는 길이와 너비의 차이가 최소가 되도록 직사각형의 변을 찾는 것입니다.
직사각형 면적 =길이 * 너비.
예시
입력 - 면적 =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