简单计算题,请用递归算法计算结果。

一列数的规则如下1,1,3,5,9,15,25,41,67…求第30位数是多少,请编写一个方法用递归算法计算结果
比市面上常见求30位数有所不同。都需要+1

这就是斐波拉契数列变形版本啊

# include<stdio.h>
int fun(int n){
    if(n<=2)return 1;
    else return fun(n-1)+fun(n-2)+1;
}
int main(){
printf("%d",fun(30));
return 0;
}

答案是

1664079

这与斐波那契数列类似。只是从第三个数开始都+1就行
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

#include<stdio.h>

int Fib(int n)
{
    if(n==1 || n==2)
        return 1;
    else
        return Fib(n-1)+Fib(n-2)+ 1;
}
void main()
{
    int n = 30;
    int m =  Fib(n);
    printf("第%d项为:%d",n,m);
}