求数列的通项:1,1,2,3,5,8,13,21......(或给出C语言代码)
4个回答
2008-12-17
展开全部
斐波那契数列指的是这样一个数列:0,1,1,2,3,5,8,13,21……
这个数列从第三项开始,每一项都等于前两项之和。它的通项公式为:(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}(又叫“比内公式”,是用无理数表示有理数的一个范例。)【√5表示根号5】
这个数列从第三项开始,每一项都等于前两项之和。它的通项公式为:(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}(又叫“比内公式”,是用无理数表示有理数的一个范例。)【√5表示根号5】
参考资料: http://baike.baidu.com/view/816.htm
展开全部
#include<stdio.h>
// 非递归求解,数列首项从0开始
long long fib2(long n)
{
long long a = 1,b = 1;
for(long i = 1;n > 0 && i < n; i++)
{
long long c = b;
b = a;
a = a+c;
}
return a;
}
int main()
{
long n;
printf("输入你想输出的数的个数:\n");
scanf("%ld",&n);
for(long i = 0; i < n ; i++)
printf("%ld\n",fib2(i));
return 0;
}
// 非递归求解,数列首项从0开始
long long fib2(long n)
{
long long a = 1,b = 1;
for(long i = 1;n > 0 && i < n; i++)
{
long long c = b;
b = a;
a = a+c;
}
return a;
}
int main()
{
long n;
printf("输入你想输出的数的个数:\n");
scanf("%ld",&n);
for(long i = 0; i < n ; i++)
printf("%ld\n",fib2(i));
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main()
{
int f1=1,f2=1,i,n;
printf("\n input n:") ;
scanf("%d",&n);
printf("%d,%d,",f1,f2);
for(i=3;i<=n;i++)
{
f1=f1+f2;
f2=f2+f1;
printf("%d,%d,",f1,f2);
}
} 公式就是那个了
还有 用 数组的 更简单 例如
i=3
a[i]=a[i-2]+a[i-1]
{
int f1=1,f2=1,i,n;
printf("\n input n:") ;
scanf("%d",&n);
printf("%d,%d,",f1,f2);
for(i=3;i<=n;i++)
{
f1=f1+f2;
f2=f2+f1;
printf("%d,%d,",f1,f2);
}
} 公式就是那个了
还有 用 数组的 更简单 例如
i=3
a[i]=a[i-2]+a[i-1]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
f(1)=1
f(2)=1
f(n)=f(n-1)+f(n-2) 当n>2时
f(2)=1
f(n)=f(n-1)+f(n-2) 当n>2时
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询