C++ 2至2 n次电源不正确

C++ 2至2 n次电源不正确,c++,recursion,C++,Recursion,请告诉我是什么问题,输出是错误的,显示4给我 F​1.​ = 2,F​N​ = (F)​n-1​)​ 2.​ , N≥ 2. i、 计算的算法复杂度是多少​F​N 使用递归 上述定义 #include <iostream> using namespace std; double calcFn(double,int); int main() { cout << calcFn(2, 4); c

请告诉我是什么问题,输出是错误的,显示4给我 F​1.​ = 2,F​N​ = (F)​n-1​)​ 2.​ , N≥ 2. i、 计算的算法复杂度是多少​F​N 使用递归 上述定义

#include <iostream>
    using namespace std;
    double calcFn(double,int);
    int main()
    {
    
    
        cout << calcFn(2, 4);
        cout << endl;
        cin.get();
        return 0;
    }
    
    double calcFn(double F1, int N)
    {   
        cout << endl;
        double Fn = F1 * F1;
        while (N > 0)
        {   
            N--;
            calcFn(Fn, N);
        }
        return Fn;
        
    }

// CODE DOESNT SHOW the RIGHT oUTPUT
#包括
使用名称空间std;
双计算器(双精度,整数);
int main()
{

cout首先,您具有重复性,因此不应使用循环。其次,您不分配返回值。更正的代码段:

if (N > 0)
{   
  N--;
  Fn = calcFn(Fn, N);
}

尽管如此,我仍然不确定结果,但您可以进一步更正它。

循环没有任何作用,因为您没有使用
calcFn
的返回值。您的问题有点模糊。calcFn(2,4)的预期答案是什么?是16吗?请参见此()然后比较你的代码。学习如何正确地进行递归。或者甚至可以用笔在纸上模拟。这是一种古老的方法,但它可以很好地发现编程错误。2^2,2^4,2^8,2^16