สมมติว่าเรามีจำนวนเต็มสามจำนวน a, b และ x ภารกิจคือการหาผลคูณของ x ซึ่งใกล้เคียงกับ ab มากที่สุด ดังนั้นหาก a =5, b =4 และ x =3 ผลลัพธ์จะเป็น 624 เนื่องจาก 54 =625 และ 624 คือผลคูณของ 3 ซึ่งใกล้เคียงกับ 625 มากที่สุด
งานนี้ง่าย เราต้องทำตามขั้นตอนเหล่านี้เพื่อแก้ปัญหา -
- คำนวณ num :=a b
- จากนั้นหา f :=floor ของ (num/x)
- ตอนนี้องค์ประกอบที่ใกล้ที่สุดทางด้านซ้ายจะเป็น cl =x * f และทางด้านขวาจะเป็น cr =x * (f + 1)
- สุดท้าย จำนวนที่ใกล้เคียงที่สุดคือ min(num – cl, cr – num)
ตัวอย่าง
#include <iostream> #include <cmath> using namespace std; long long getClosest(int a, int b, int x) { long long num = pow(a, b); int f = floor(num / x); long long cl = x * f; long long cr = x * (f + 1); if ((num - cl) < (cr - num)) return cl; else return cr; } int main() { int a = 5, b = 4, x = 3; cout << "Find closest element: " << getClosest(a, b, x); }
ผลลัพธ์
Find closest element: 624