3

ねえ、これは答えるのが簡単な質問だといいのですが、それは私にとってまったく新しいことであり、なぜそれが起こっているのかわかりません. 次のC++コードを使用します。

template<class T>
T expo(T a, T b){
    T result = 1;
    while(b) {
        if(b & 1)result *= a;
        b >>=1 ;
        a *= a;
    }
    return result;
}

int main() {
    cout << std::pow<size_t>(50, 5) << endl;
    cout << expo<size_t>(50, 5) << endl;
}

出力は次のとおりです。

3.125e+008
312500000

どちらも正しいですがstd::pow()、出力を科学表記法にフォーマットします。世界でどのようにこれを行うのですか?私が見逃していたC++の機能があるに違いありません。ヘルプ!

4

2 に答える 2