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

时间:2015-02-11 15:26:54

标签: 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

任何想法?

1 个答案:

答案 0 :(得分: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);
}