首頁 >後端開發 >C++ >在C++中,將以下內容翻譯為中文:尋找長度和寬度之間差異最小的矩形

在C++中,將以下內容翻譯為中文:尋找長度和寬度之間差異最小的矩形

王林
王林轉載
2023-09-16 13:21:09644瀏覽

在C++中,將以下內容翻譯為中文:尋找長度和寬度之間差異最小的矩形

給定一個矩形區域作為輸入。目標是找到矩形的邊,使長度和寬度之間的差異最小。

矩形的面積 = 長度 * 寬度。

範例

輸入− 面積= 100

#輸出− 差異最小的矩形邊:

長度= 10,寬度= 10

解釋− 面積= 100 的邊。

2 - 50、4 - 25、5 - 20、10 - 10。差異最小的邊是 10-10,差值 = 0。眾所周知,正方形是所有邊長相等的長方形。

輸入− 面積= 254

輸出− 具有最小差異的矩形邊:

長= 127,寬度= 2

解釋 - 僅可能的邊製作面積為254 的矩形的最小差值為127 和2。

下面程式中使用的方法如下

在此我們將求面積的平方根值並進行遍歷從那裡到1,以便找到差異最小的值,並且area=輸入區域。

  • 以整數變數Area作為輸入。

    li>
  • 函數fragmentSides(int area1)接受area1並列印矩形的邊長,長度和寬度之間的差異盡可能小。

  • 取整數長度、寬度、tmp1。

  • 設定tmp1=ceil(sqrt(area1))

  • 使用for 迴圈遍歷( int i = tmp1;我> 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;
}

輸出

如果我們執行上面的程式碼,它將產生以下輸出

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

以上是在C++中,將以下內容翻譯為中文:尋找長度和寬度之間差異最小的矩形的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除