急急急 计算Fibonacci数列前n项和,提示F(n)定义 F(n)=F(n-1)+F(n-2) 用c语言编程 急求

 我来答
White_MouseYBZ
2013-07-06 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6772万
展开全部
#include "stdio.h"

int fibona(int n){
int a,b,i;
if(n==1 || n==2) return 1;
for(a=1,b=1,i=2;i<n;i++){
b+=a;
a=b-a;
}
return b;
}
void main(void){
int n,i,sum;
printf("Type an integer...\nn=");
scanf("%d",&n);
for(sum=0,i=1;i<=n;sum+=fibona(i++));
printf("The sum is %d.\n",sum);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
明渊阁
推荐于2017-12-16 · TA获得超过450个赞
知道小有建树答主
回答量:300
采纳率:0%
帮助的人:240万
展开全部
楼主这个百度有很多的,在此借用一下夜游神小翠的程序:
#include<stdio.h>
#define N 20
int Fibonacci(int n)
{
if(n == 1 || n==2)
return 1;
else
return Fibonacci(n-1)+Fibonacci(n-2);
}
void main()
{
int i = 0;
for(i=1;i<=N;i++)
{
printf("%5d",Fibonacci(i));
if(i%5 == 0)
printf("\n");
}
printf("\n");
}
只要修改宏定义N的值,就可以输出斐波那契数列的前N项。
楼主有不会可以再问哦。
追问
能把N改为输入scanf的么  帮个忙  给个完整的
追答
#include
int Fibonacci(int n)
{
if(n == 1 || n==2)
return 1;
else
return Fibonacci(n-1)+Fibonacci(n-2);
}
int main()
{
int i = 0;
int N;
printf("请输入要计算的Fibonacci个数:\n");
scanf("%d",&N);
for(i=1;i<=N;i++)
{
printf("%5d",Fibonacci(i));
if(i%5 == 0)
printf("\n");
}
printf("\n");
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿仁干货铺
2018-11-07
知道答主
回答量:6
采纳率:0%
帮助的人:3786
展开全部
#include <stdio.h>
#include <math.h>
#define M sqrt(5)
int main (void)
{
long n;
scanf("%ld", &n);
long double m1=powl((1+M)/2,n), m2=powl((1-M)/2,n);
unsigned long long fn = (unsigned long long)((1/M)*(m1-m2));
if(n<=2){
fn=1;
printf("%llu", fn);
}
else{
printf("%llu",fn);
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式