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

หาตัวคูณของ x ที่ใกล้ที่สุดกับ a^b ใน C++

สมมติว่ามีจำนวนเต็มสามจำนวน a, b และ x งานคือการหาตัวคูณของ x ที่ใกล้ที่สุดกับ a^b ดังนั้นถ้า a = 5, b = 4 และ x = 3 ผลลัพธ์จะเป็น 624 เพราะ 5^4 = 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