関数を使用して数値の平方根を取得する方法を知っていsqrt
ます。
数値の立方根を取得するにはどうすればよいですか?
sqrt
は「平方根」の略で、「平方根」は のべき乗を意味し1/2
ます。「ルート 2 の平方根」や「ルート 3 の平方根」などというものはありません。他の語根については、最初の単語を変更します。あなたの場合、キューブルート化を実行する方法を探しています。
C++11 より前では、これに対する特定の機能はありませんが、最初の原則に戻ることができます。
std::pow(n, 1/2.)
(またはstd::sqrt(n)
)std::pow(n, 1/3.)
(またはstd::cbrt(n)
C++11 以降)std::pow(n, 1/4.)
に負の値を渡すことを期待している場合は、解決策n
を避けてくださいstd::pow
—分数の指数を持つ負の入力をサポートしていないため、std::cbrt
が追加されました。
std::cout << std::pow(-8, 1/3.) << '\n'; // Output: -nan
std::cout << std::cbrt(-8) << '\n'; // Output: -2
NBそれ以外の場合は整数除算を使用し、結果が になる.
ため、これは非常に重要です。1/3
0
C++11 では、数学ライブラリstd::cbrt
の一部として導入されました。
x の n 乗根は x^(1/n) に等しいので、 を使用しますstd::pow
。しかし、これが演算子のオーバーロードとどう関係しているのかわかりません。
sqrt()
演算子ではありません。sqrt()
。sqrt()
あなたが望むことをするのを手伝うことができるように、なぜオーバーロードする必要があるのか を説明してください.
この問題の解決策は、
cube_root = pow(n,(float)1/3);
#include <math.h>
ファイルをライブラリ化する必要があります
C/C++ の古い標準は cbrt() 関数をサポートしていません。
cube_root = pow(n,1/3);
コンパイラが考えるようなコードを書く場合(C/C++ の除算問題)、正しい答えを得るためには、1/3 = 0
を使用して型キャストを行う必要があります。(float)1/3
#include<iostream.h>
#include<conio.h>
#include<math.h>
using namespace std;
int main(){
float n = 64 , cube_root ;
clrscr();
cube_root = pow(n , (float)1/3);
cout<<"cube root = "<<cube_root<<endl;
getch();
return 0;
}
立方根 = 4