首页 文章资讯内容详情

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

2026-06-02 2 花语

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

矩形面积=长*宽。

例子

输入 -面积=100

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

长度=10,宽度=10

说明 -面积=100的边。

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

输入 -面积=254

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

长度=127,宽度=2

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

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

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

以整数变量Area作为输入。

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

取整数长度,宽度,tmp1。

设置tmp1=ceil(sqrt(area1))

使用for循环遍历(inti=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