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
广告