2

e の x 乗を見つけようとしています。単純に新しい/鉱石の効率的なソリューションを提案するのではなく、現在の実装で何が間違っている可能性があるかを示してください (ネット上で多くを見つけることができます)。論理エラーまたは実行時エラーがあるようですが、デバッグしても何も表示されません。前もって感謝します!

cmath ライブラリが含まれています。プログラムは正常にコンパイルされます。実行時に停止します。

double find_e_power_x(int x){
     int i = 1, j = 1, count = 1, accuracy = 15;
     double xd = static_cast<double>(x); //pow takes double args
     double jd = static_cast<double>(j);
     double epx = 1.0;
     while ( count < accuracy ){
           while ( ++i && ++j) {
                 epx += ( pow(xd,jd) / fact(i) ); //static_cast
                 count++;
           }
     }
     return epx;
} 

コメント(私の無限の内部ループを指摘)に応えて、

編集:

while ( count < accuracy ){
                 epx += ( pow(xd,jd) / fact(i) ); //static_cast
                 count++;
                 i++;
                 j++;
     }

input =3 の答えは正しくありませんが、出力は 3.15485 になります。


以下は最終バージョンで正常に動作します

i/p = 4

o/p = 54.8278

double find_e_power_x(int x){
     int i = 1, count = 1, accuracy = 15;
     double xd = static_cast<double>(x); //pow takes double args
     double id = static_cast<double>(i);
     double epx = 1.0;
     while ( count < accuracy ){
                 epx += ( pow(xd,id) / fact(i) ); //static_cast
                 ++count;
                 ++id;
                 ++i;
     }
     return epx;
} 
4

1 に答える 1