ねえ、これは答えるのが簡単な質問だといいのですが、それは私にとってまったく新しいことであり、なぜそれが起こっているのかわかりません. 次の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++の機能があるに違いありません。ヘルプ!