Mendarab nombor yang sama tiga kali dipanggil kubus nombor itu. Atau kita boleh katakan jumlah itu dinaikkan kepada kuasa ketiga. Contohnya, 3 * 3 * 3 = 27, iaitu nombor padu. Tetapi jika kita ingin melakukan sebaliknya, kita perlu mencari punca kubus nombor itu. Contohnya $sqrt[3]{27}$ = 3. Dalam artikel ini, kita akan membincangkan cara mengira punca kubus nombor tertentu dalam C++. Terdapat beberapa teknik yang berbeza untuk melakukan ini.
cbrt() ialah fungsi perpustakaan yang digunakan untuk mengira punca kubus bagi nombor tertentu. Jika nombor itu adalah kubus sempurna, hasilnya ialah integer, jika tidak, ia mengembalikan nombor titik terapung. Fungsi ini hanya mengambil satu hujah dan mengembalikan punca kubusnya. Untuk menggunakan fungsi ini, kita perlu mengimport perpustakaan cmath ke dalam program C++. Mari lihat sintaks fungsi ini.
#include < cmath > cbrt( <cubic number> )
#include <iostream> #include <cmath> using namespace std; float solve( int x ) { float answer; answer = cbrt( x ); return answer; } int main() { cout << "Cube root of 125 is: " << solve( 125 ) << endl; cout << "Cube root of 27 is: " << solve( 27 ) << endl; cout << "Cube root of 158 is: " << solve( 158 ) << endl; cout << "Cube root of 1000000 is: " << solve( 1000000 ) << endl; }
Cube root of 125 is: 5 Cube root of 27 is: 3 Cube root of 158 is: 5.40612 Cube root of 1000000 is: 100
Dalam contoh sebelumnya, kami melihat cara mengira punca kubus nombor menggunakan fungsi perpustakaan daripada perpustakaan cmath. Dalam bahagian ini, kita akan mencipta fungsi untuk mengira punca kubus bagi nombor tertentu. Algoritmanya adalah seperti berikut -
i. akhir := pertengahan.
i.
#include <iostream> #include <cmath> using namespace std; float solve( int x ) { int start = 0; int end = x; float mid = ( start + end ) / 2; while ( (mid * mid * mid) != x ) { mid = ( start + end ) / 2; if ( mid * mid * mid < x ) start = mid; else if( mid * mid * mid > x) end = mid; } return mid; } int main() { cout << "Cube root of 125 is: " << solve( 125 ) << endl; cout << "Cube root of 27 is: " << solve( 27 ) << endl; cout << "Cube root of 1000000 is: " << solve( 1000000 ) << endl; }
Cube root of 125 is: 5 Cube root of 27 is: 3 Cube root of 1000000 is: 100
Satu kelemahan kaedah ini ialah ia boleh dikira dengan mudah apabila nombornya adalah kiub yang sempurna. Kami juga boleh mengendalikan hasil titik terapung menggunakan pengurusan ketepatan ralat yang sesuai.
Mengira punca kubus nombor ialah cara yang sangat mudah apabila kita menggunakan fungsi cbrt() daripada fail pengepala cmath. Kaedah ini hanya mengambil satu parameter, nombor padu, dan kemudian mencari punca kubusnya. Sebaliknya, jika kita ingin mengira punca kubus tanpa menggunakan perpustakaan cmath atau mana-mana pustaka pihak ketiga, kita boleh menggunakan kaedah berangka untuk mengiranya. Dalam contoh kami, kami menggunakan kaedah pembahagian dua untuk mengira punca kubus. Dalam contoh yang diberikan, fungsi hanya akan berfungsi jika nombor yang diberikan adalah kubus sempurna. Ia mungkin tidak berfungsi untuk mana-mana nombor lain yang punca kubusnya bukan integer. Kita boleh menambah beberapa kaedah ketepatan ralat untuk mengendalikan hasil bukan integer yang lain, seperti punca kubus.
Atas ialah kandungan terperinci Program C++ untuk mengira punca kubus nombor tertentu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!