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

更新於: 2021-11-03

259 次瀏覽

開啟你的 職業生涯

完成課程獲得認證

開始學習
廣告

© . All rights reserved.