C++ 多重递归函数

c++ multiple recursive functions

如何在函数声明之前使用它?

我有 3 个函数,它们中的每一个都必须相互交互,但我找不到一种方法可以使较早声明的函数与较晚声明的函数交互。这是代码:

int f(int a){
    if (a==0){return 1;}
    if (a==1){return 2;}
    if (a==2){return 7;}
    return 2*f(a-1)+3*f(a-2)+3*f(a-3)+6*g(a-2)+2*g(a-3)+2*h(a-2);
}

int g(int b){
    if (b==0){return 0;}
    if (b==1){return 1;}
    return f(b-1)+g(b-1)+h(b-1);
}

int h(int c){
    if (c==0){return 0;}
    if (c==1){return 1;}
    return f(c-2)+g(c-1)+g(c-2);
}

一个函数只需要知道另一个函数的名称、它的参数类型和它的 return 类型就可以调用它。它不需要在您调用它的地方完全实现。只需先声明您的函数,然后实现它们。

// Declare before use
int g(int b);
int h(int c);

// Implement here
int f(int a){
    if (a==0){return 1;}
    if (a==1){return 2;}
    if (a==2){return 7;}
    return 2*f(a-1)+3*f(a-2)+3*f(a-3)+6*g(a-2)+2*g(a-3)+2*h(a-2);
}

int g(int b){
    if (b==0){return 0;}
    if (b==1){return 1;}
    return f(b-1)+g(b-1)+h(b-1);
}

int h(int c){
    if (c==0){return 0;}
    if (c==1){return 1;}
    return f(c-2)+g(c-1)+g(c-2);
}