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=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