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

คูณตัวเลขด้วย 15 โดยไม่ใช้ * และ / ใน C++

โจทย์

เราสามารถใช้ตัวดำเนินการ เลขซ้าย (<<) เพื่อคูณด้วย 15 หากเราเลขซ้าย 1 เรากำลังคูณมันด้วย 2

หากเราเลขซ้ายตัวเลขที่กำหนดด้วย 4 เราจะได้ 16 * n การลบตัวเลขที่กำหนดออกจาก 16 * n จะได้ 15 * n

หรือ

เราสามารถแยกได้เป็น 8 * n + 4 * n + 2 * n + n คุณสามารถคูณกำลังของ 2 ได้ง่ายๆ โดยใช้เลขซ้าย

อัลกอริธึม

  • กำหนดตัวเลข n
  • หา n << 4 เพื่อได้ 16 * n
  • ลบ n ออกจากผลลัพธ์ข้างต้น
  • คืนคำตอบสุดท้าย

การนำไปใช้งาน

ต่อไปนี้เป็นการนำไปใช้งานของอัลกอริธึมข้างต้นใน C++

#include <bits/stdc++.h> 
using namespace std; 

long long getMultiplicationResult(long long n) { 
    return (n << 4) - n; 
} 

int main() { 
    long long n = 15; 
    cout << getMultiplicationResult(n) << endl; 
    return 0; 
}

ผลลัพธ์

หากคุณรันโค้ดข้างต้น คุณจะได้ผลลัพธ์ดังนี้

225