กำหนดพื้นที่สี่เหลี่ยมเป็นอินพุต เป้าหมายคือการหาด้านของสี่เหลี่ยมผืนผ้าที่มีความแตกต่างระหว่างความยาวและความกว้างน้อยที่สุด
พื้นที่สี่เหลี่ยมผืนผ้า =ยาว * กว้าง
ตัวอย่าง
ป้อนข้อมูล − พื้นที่ =100
ผลผลิต −ด้านของสี่เหลี่ยมผืนผ้าที่มีความแตกต่างขั้นต่ำ:
ความยาว =10 ความกว้าง =10
คำอธิบาย − ด้านที่มีพื้นที่ =100
2 - 50, 4 - 25, 5 - 20, 10 - 10. ด้านที่มีความแตกต่างขั้นต่ำคือ 10-10 โดยมีค่าความต่าง =0 อย่างที่เราทราบ tha Square เป็นรูปสี่เหลี่ยมผืนผ้าที่มีความยาวเท่ากันทุกด้าน
ป้อนข้อมูล − พื้นที่ =254
ผลผลิต − ด้านของสี่เหลี่ยมผืนผ้าที่มีความแตกต่างน้อยที่สุด :
ความยาว =127 ความกว้าง =2
คำอธิบาย − เฉพาะด้านที่มีความแตกต่างน้อยที่สุดเท่านั้น ให้สร้างสี่เหลี่ยมที่มีพื้นที่ 254 คือ 127 และ 2
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
ในที่นี้ เราจะหาค่ารากที่สองของพื้นที่และเคลื่อนที่จากจุดนั้นไปยัง 1 เพื่อหาค่าที่มีความแตกต่างขั้นต่ำและ Area=พื้นที่ป้อนข้อมูล
-
ใช้ตัวแปรจำนวนเต็ม Area เป็นอินพุต
-
ฟังก์ชันสี่เหลี่ยมผืนผ้าด้าน (int area1) ใช้พื้นที่ 1 และพิมพ์ความยาวของด้านของสี่เหลี่ยมผืนผ้าโดยมีความแตกต่างน้อยที่สุดระหว่างความยาวและความกว้าง
-
ใช้จำนวนเต็ม ความยาว ความกว้าง tmp1
-
ตั้งค่า tmp1=ceil(sqrt(area1))
-
สำรวจโดยใช้ for loop (int i =tmp1; i> 0; i--)
-
ถ้า (พื้นที่ 1 % i ==0) ให้ตั้งค่า length=area/i และ width=i
-
หยุดการวนซ้ำโดยใช้คำสั่งแบ่ง
-
พิมพ์ด้านยาวและกว้าง
ตัวอย่าง
#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