6.4. 编写更复杂的递归函数¶
某些递归函数只有一个基本情况和一次递归调用。但通常存在多于一个基本情况或一次递归调用,或者两者皆有。
以下是递归函数的通用结构。
if ( base case 1 )
// return some simple expression
else if ( base case 2 )
// return some simple expression
else if ( base case 3 )
// return some simple expression
else if ( recursive case 1 ) {
// some work before
// recursive call
// some work after
}
else if ( recursive case 2 ) {
// some work before
// recursive call
// some work after
}
else { // recursive case 3
// some work before
// recursive call
// some work after
}
if ( base case 1 ) {
// return some simple expression
}
else if ( base case 2 ) {
// return some simple expression
}
else if ( base case 3 ) {
// return some simple expression
}
else if ( recursive case 1 ) {
// some work before
// recursive call
// some work after
}
else if ( recursive case 2 ) {
// some work before
// recursive call
// some work after
}
else { // recursive case 3
// some work before
// recursive call
// some work after
}
if (base case 1)
// return some simple expression
else if (base case 2)
// return some simple expression
else if (base case 3)
// return some simple expression
else if (recursive case 1) {
// some work before
// recursive call
// some work after
}
else if (recursive case 2) {
// some work before
// recursive call
// some work after
}
else { // recursive case 3
// some work before
// recursive call
// some work after
}
