
c语言 斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13, 这个数列从第三项开始,每一项都等于前两项之和.
给出一个正整数n,要求菲波那契数列中第n个数是多少.输入格式第1行是测试数据的组数T(1<=T<=10),后面跟着T行输入.每组测试数据占1行,包括一个正整数n(1<=n...
给出一个正整数n,要求菲波那契数列中第n个数是多少. 输入格式 第1 行是测试数据的组数T(1 <= T<= 10),后面跟着T 行输入.每组测试数据占1 行,包括一个正整数n(1 <= n <= 20). 输出格式 T行,每行输出对应一个输入.输出是一个正整数,为斐波那契数列中第n 个数的大小.
展开
2个回答
展开全部
#include "stdio.h"
int main(void){
int a,b,i,T,n;
while(1){
printf("Input T(int 0<T<11)...\nT=");
if(fflush(stdin),scanf("%d",&T) && T>0 && T<11)
break;
printf("Error, redo: ");
}
while(T--){
while(1){
printf("Input n(int 0<n<21)...\nn=");
if(fflush(stdin),scanf("%d",&n) && n>0 && n<21){
for(a=b=1,i=2;i<n;i++)
a+=b,b=a-b;
break;
}
printf("Error, enter again n: ");
}
printf("%d\n",a);
}
return 0;
}
2016-05-02 · 百度知道合伙人官方认证企业
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注

展开全部
参考一下代码
a2-a1=0
a3-a2=1
.
an-a(n-1)=n-2
以上等式相加得
an-a1=0+1+.+n-2
an-1=(0+n-2)*(n-1)/2
an=(n-2)*(n-1)/2+1
an=(n^2-3n+4)/2
an=n^2/2-3n/2+2
s20=1^2/2-3*1/2+2+2^2/2-3*2/2+2+.+20^2/2-3*20/2+2
=(1^2+2^2+.+20^2)/2-3(1+2+.+20)/2+2*20
=[20*(20+1)(2*20+1)/6]/2-[3*(1+20)*20/2]/2+40
=35*41-15*21+40
=1160
a2-a1=0
a3-a2=1
.
an-a(n-1)=n-2
以上等式相加得
an-a1=0+1+.+n-2
an-1=(0+n-2)*(n-1)/2
an=(n-2)*(n-1)/2+1
an=(n^2-3n+4)/2
an=n^2/2-3n/2+2
s20=1^2/2-3*1/2+2+2^2/2-3*2/2+2+.+20^2/2-3*20/2+2
=(1^2+2^2+.+20^2)/2-3(1+2+.+20)/2+2*20
=[20*(20+1)(2*20+1)/6]/2-[3*(1+20)*20/2]/2+40
=35*41-15*21+40
=1160
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询