求数列的通项:1,1,2,3,5,8,13,21......(或给出C语言代码)

有通项公式就最好了…如果用C语言来解决,别用递归,会超时…... 有通项公式就最好了…如果用C语言来解决,别用递归,会超时… 展开
 我来答
匿名用户
2008-12-17
展开全部
斐波那契数列指的是这样一个数列:0,1,1,2,3,5,8,13,21……
这个数列从第三项开始,每一项都等于前两项之和。它的通项公式为:(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}(又叫“比内公式”,是用无理数表示有理数的一个范例。)【√5表示根号5】

参考资料: http://baike.baidu.com/view/816.htm

cwj1316
推荐于2016-07-18 · TA获得超过550个赞
知道小有建树答主
回答量:214
采纳率:0%
帮助的人:300万
展开全部
#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;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
逃离23
2008-12-17 · TA获得超过532个赞
知道小有建树答主
回答量:445
采纳率:0%
帮助的人:293万
展开全部
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]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wty518
2008-12-16
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
f(1)=1
f(2)=1
f(n)=f(n-1)+f(n-2) 当n>2时
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式