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

ค้นหาตัวคูณของ x ที่ใกล้เคียงที่สุดหรือ a ^ b (a ยกกำลัง b) ใน C++


สมมติว่าเรามีค่าสามค่าคือ a, b และ x เราต้องหาผลคูณของ x หนึ่งตัว ซึ่งใกล้เคียงที่สุดกับ a b . สมมติว่าตัวเลขคือ x =4, a =3, b =3 แล้วผลลัพธ์จะเป็น 28 เนื่องจากค่านี้ใกล้เคียงที่สุดกับ 3 3 =27

วิธีการนั้นง่าย เราต้องปฏิบัติตามเงื่อนไขเหล่านี้ -

  • ถ้า b <0 และ a =1 ดังนั้น ab จะกลายเป็น 1 ดังนั้นผลคูณที่ใกล้เคียงที่สุดของ x จะกลายเป็น 0 หรือ x

  • ถ้า b <0 และ a> 1 ดังนั้น ab จะน้อยกว่า 1 และด้วยเหตุนี้ผลคูณที่ใกล้เคียงที่สุดของ x จะกลายเป็น 0

  • ถ้า b> 0 ให้หา ab จากนั้นให้ mul =จำนวนเต็มของ ab / x แล้วผลคูณที่ใกล้เคียงที่สุดของ x คือ mul*x หรือ (mul + 1)*x

ตัวอย่าง

#include<iostream>
#include<cmath>
using namespace std;
void findMultiple(int a, int b, int x) {
   cout << "Nearest multiple: ";
   if (b < 0) {
      if (a == 1 && x == 1)
         cout << "1";
      else
         cout << "0";
   }
   int mul = pow(a, b);
   int ans = mul / x;
   int ans1 = x * ans;
   int ans2 = x * (ans + 1);
   if((mul - ans1) <= (ans2 - mul)){
      cout << ans1;
   }
   else{
      cout << ans2;
   }
}
int main() {
   int a = 3, b = 3, x = 4;
   findMultiple(a, b, x);
}

ผลลัพธ์

Nearest multiple: 28