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);
}
如何在函数声明之前使用它?
我有 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);
}