#include <stdio.h>
int s(int m);
int main (void)
{
int n, i = 0;
int x;
scanf ("%d", &n);
while (i < n)
{
scanf ("%d", x);
printf ("%d", s(x));
}
return 0;
}
int s(int m)
{
int f1 = 1;
int f2 = 1;
if (m = 1)
return 1;
else
{
return (f1 + f2);
f1 = f1 + f2;
f2 = f1 + f2;
m--;
}
}
哪里错了
代码:
#include<stdio.h>
int Fib(int n){//自定义函数
if(n<0)
return-1;
else if(n==0)
return 0;
else if(n==1)
return 1;
else
return Fib(n-1)+Fib(n-2);
}
int main(){
int num;
printf("请输入要求取的第n项斐波那契数列n=");
if(scanf("%d",&num)){
if(num>=0){
printf("%d",Fib(num));
}
else
printf("Error!!!");
return 0;
}
return 0;
}
斐波那契数列排列组合
有一段楼梯有10级台阶,规定每一步只能跨一级或两级,要登上第10级台阶有几种不同的走法
这就是一个斐波那契数列:登上第一级台阶有一种登法;登上两级台阶,有两种登法;登上三级台阶,有三种登法;登上四级台阶,有五种登法……
1,2,3,5,8,13……所以,登上十级,有89种走法。
类似的,一枚均匀的硬币掷10次,问不连续出现正面的可能情形有多少种?
答案是(1/√5)*{[(1+√5)/2]^(10+2)-[(1-√5)/2]^(10+2)}=144种。
求递推数列a⑴=1,a(n+1)=1+1/a(n)的通项公式
由数学归纳法可以得到:a(n)=F(n+1)/F(n),将斐波那契数列的通项式代入,化简就得结果。
参考资料:
没怎么看懂你的递归,我给你写了一个,你参考参考
#include <stdio.h>