-1

次の各数式を C の同等のステートメントに変換するにはどうすればよいですか?

  1. 1 / (x^2 + y^2)

  2. (b^2 - 4ac) の平方根

4

1 に答える 1

6
  • 1.0 / (pow(x,2) + pow(y,2))
  • sqrt(pow(b,2) - 4*a*c)

pow()sqrt()機能のマニュアルを参照してください。

x*xの代わりに書くこともできますpow(x, 2)。どちらもまったく同じ結果とパフォーマンスになります (コンパイラーは、関数のpow機能と最適化方法を認識しています)。


(コメント者向け)

GCC は、これらの関数の両方に対してまったく同じアセンブラー コードを出力します。

double pow2_a(double x) {
    return pow(x, 2);
}

double pow2_b(double x) {
    return x * X;
}

アセンブラ:

    fldl    4(%esp)
    fmul    %st(0), %st
    ret
于 2011-09-07T11:30:15.277 に答える