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 並列印長寬差值最小的矩形的邊長。
使用整數變數 length、breadth、tmp1。
設定 tmp1=ceil(sqrt(area1))
使用 for 迴圈遍歷 (int i = tmp1; i > 0; i--)。
如果 (area1 % i == 0),則設定 length=area/i 和 breadth=i。
使用 break 語句停止迭代。
列印邊長 length 和 breadth。
示例
#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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP