Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 从给定输入返回输出的递归函数_Algorithm_Function_Recursion - Fatal编程技术网

Algorithm 从给定输入返回输出的递归函数

Algorithm 从给定输入返回输出的递归函数,algorithm,function,recursion,Algorithm,Function,Recursion,我需要编写算法递归函数,根据下表返回输出 Input: 0 1 2 3 4 5 6 7 8 Output: 1 1 2 4 7 13 24 44 81 Input: 0 1 2 3 4 5 6 7 8 9 10 11 Output: 0 0 0 1 1 0 1 1 0 1 1 0 如果第一个例子中的评价规则实际上是“返回前三个元素的和”,那么函数可以在C++、C++或java中实现如下: int f(int n) { if ( n == 0 ||

我需要编写算法递归函数,根据下表返回输出

Input:  0 1 2 3 4 5  6  7  8
Output: 1 1 2 4 7 13 24 44 81

Input:  0 1 2 3 4 5  6  7  8  9  10  11
Output: 0 0 0 1 1 0  1  1  0  1  1   0

如果第一个例子中的评价规则实际上是“返回前三个元素的和”,那么函数可以在C++、C++或java中实现如下:
int f(int n)
{
    if ( n == 0 || n == 1 )
        return 1;
    else if ( n == 2 )
        return 2;
    else return f(n-3) + f(n-2) + f(n-1);
}
int f(int n)
{
    if ( n == 0 || n == 1 || n == 2 )
        return 0;
    else if ( n == 3 || n == 4 )
        return 1;
    else return f(n-3);
}
第二个功能可以实现如下

int f(int n)
{
    if ( n == 0 || n == 1 )
        return 1;
    else if ( n == 2 )
        return 2;
    else return f(n-3) + f(n-2) + f(n-1);
}
int f(int n)
{
    if ( n == 0 || n == 1 || n == 2 )
        return 0;
    else if ( n == 3 || n == 4 )
        return 1;
    else return f(n-3);
}

第一个是前三个术语的总和,第二个是。。。不知道无论如何,WTF?
000
然后
110
重复。请解释否决票。答案是否过于简单?可能是因为您刚刚给出了一个实现,但没有解释解决方案(甚至没有解释递归函数的原理)?