一列数的规则如下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);
}