Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

สี่เหลี่ยมผืนผ้าที่มีความแตกต่างน้อยที่สุดระหว่างความยาวและความกว้างใน C++


กำหนดพื้นที่สี่เหลี่ยมเป็นอินพุต เป้าหมายคือการหาด้านของสี่เหลี่ยมผืนผ้าที่มีความแตกต่างระหว่างความยาวและความกว้างน้อยที่สุด

พื้นที่สี่เหลี่ยมผืนผ้า =ยาว * กว้าง

ตัวอย่าง

ป้อนข้อมูล − พื้นที่ =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