私はこの質問について考えています。たとえば、累乗関数の再帰バージョンがあるとします:
double pow(double base, int power){
if(power == 1 || power == 0){
return base;
}
else if(power % 2 == 0){
double result = pow(base,power/2);
return result * result;
}
else{
double result = pow(base,(power-1)/2);
return result * result * base;
}
}
私の質問は、これを while ループに変換するにはどうすればよいかということです。
編集:スタックを明示的に維持することでこれを実行できることはわかっていますが、この特別なケースでは、そうしない可能性はありますか?