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

โปรแกรม C++ หารากที่สามของตัวเลข

ที่นี่เราจะดูวิธีหารากที่สามของตัวเลข สมมติตัวเลขคือ 27 รากที่สามคือ 3 เพื่อแก้ปัญหานี้ เราจะกำหนดตรรกะของตัวเองโดยไม่ใช้ฟังก์ชันไลบรารี เราจะใช้วิธีการค้นหาแบบทวิภาค (binary search) เราต้องทำตามขั้นตอนเหล่านี้เพื่อแก้ปัญหานี้

สมมติเรามีค่าเกณฑ์ (threshold) เช่น threshold = 0.000001

  • เริ่มค่าซ้าย (left) เป็น 0 และค่าขวา (right) เป็นตัวเลข
  • คำนวณ mid := (left + right) / 2
  • ถ้าค่าสัมบูรณ์ของ (ตัวเลข - mid3) น้อยกว่า threshold คืนค่า mid เป็นคำตอบ
  • ถ้า mid3 มากกว่าตัวเลข ตั้งค่า right := mid
  • ถ้า mid3 น้อยกว่าตัวเลข ตั้งค่า left := mid

ตัวอย่าง

#include <iostream> 
#include <cmath> 
using namespace std; 

double cubeRoot(int num) { 
    double threshold = 0.000001; 
    double left = 0, right = num; 
    double mid; 
    while(left <= right){ 
        mid = (left + right) / 2; 
        if(abs(num - (mid * mid * mid)) < threshold) 
            return mid; 
        if((mid * mid * mid) > num) 
            right = mid; 
        if((mid * mid * mid) < num) 
            left = mid; 
    } 
} 

int main() { 
    int n = 3; 
    cout << "cube root of 3 is: " << cubeRoot(n); 
}

ผลลัพธ์

cube root of 3 is: 1.44225