C++中长宽差最小的矩形

给定一个矩形区域作为输入。目标是找到矩形的边,使得长和宽之间的差异最小。

矩形面积=长*宽。

例子

输入 - 面积 = 100

输出 - 具有最小差异的矩形的边:

长度 = 10,宽度 = 10

说明 - 面积 = 100 的边。

2 - 50, 4 - 25, 5 - 20, 10 - 10。差最小的边是10-10,差= 0。正如我们所知,正方形是一个四边长相等的矩形。

输入 - 面积 = 254

输出 - 具有最小差异的矩形边:

长度 = 127,宽度 = 2

说明- 只有具有最小差异的可能边才能使面积为 254 的矩形为 127 和 2。

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

在这里,我们将找到 area 的平方根值并从那里遍历到 1 以找到具有最小差异和 area= input area 的值。

  • 以整数变量 Area 作为输入。

  • 函数 rectangleSides(int area1) 取 area1 并打印 Rectangle 的边长,其中长度和宽度之间的差异尽可能小。

  • 取整数长度,宽度,tmp1。

  • 设置 tmp1=ceil(sqrt(area1))

  • 使用 for 循环遍历 (int i = tmp1; i > 0; i--)。

  • 如果 (area1 % i == 0) 则设置 length=area/i 和 width=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<<"具有最小差异的矩形的边:"<<endl;

   cout << "Length = " << length << ", Breadth = "   << breadth << endl;

}

int main(){

   int Area = 140;

   rectangleSides(Area);

   return 0;

}

输出结果

如果我们运行上面的代码,它将生成以下输出

具有最小差异的矩形的边:

Length = 14, Breadth = 10

以上是 C++中长宽差最小的矩形 的全部内容, 来源链接: utcz.com/z/338638.html

回到顶部