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 次浏览

开启你的 职业生涯

完成课程获得认证

开始学习
广告