กำหนดด้านของสี่เหลี่ยมจัตุรัสและจำนวนครั้งที่พับ เราต้องหาพื้นที่สี่เหลี่ยมจัตุรัสหลังพับจำนวนครั้งนั้น
สี่เหลี่ยมจัตุรัสเป็นรูป 2 มิติคล้ายสี่เหลี่ยมผืนผ้าที่ด้านทุกด้านเท่ากัน และมุมทุกมุมเท่ากับ 90 องศา
ขณะพับสี่เหลี่ยมจัตุรัส −
- พับจากมุมซ้ายบนของสามเหลี่ยมไปยังมุมขวาล่าง ทำให้เป็นสามเหลี่ยม
- พับครั้งที่สองจากบนลงล่าง
- พับครั้งที่สามจากซ้ายไปขวา
และทำซ้ำขั้นตอนเหล่านี้
ตัวอย่าง
Input: side = 23, fold = 4 Output: area of square after n folds is : 6.53086
วิธีแก้ปัญหา −
- หาพื้นที่สี่เหลี่ยมจัตุรัสก่อนพับ
- ทุกครั้งที่พับ ให้ลดพื้นที่ลงครึ่งหนึ่ง Area = Area/2
- สุดท้ายหารพื้นที่ด้วย pow(2, fold)
อัลกอริทึม
START In function double area_nfold(double side, double fold) Step 1-> Decalre and initialize area = side * side Step 2-> Return (area * 1.0 / pow(3, fold)) In int main() Step 1 -> Decalre and initialize double side = 23, fold = 4 Step 2 -> Call function area_nfold(side, fold) and print the results STOP
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; //function to calculate area of square after n folds double area_nfold(double side, double fold){ double area = side * side; return area * 1.0 / pow(3, fold); } int main(){ double side = 23, fold = 4; cout <<"area of square after n folds is : "<<area_nfold(side, fold); return 0; }ผลลัพธ์
area of square after n folds is :6.53086