
用c语言计算fibonacci数列的前50项和
#include"stdio.h"
intmain(){
longintf1,f2,i;
f1=1;f2=1;//赋初始值
for(i=1;i<=20;i++){//循环20次,一次两个,结果为前50项
printf("%12d%12d",f1,f2);//输出两项
f1=f1+f2;f2=f2+f1;//计算下面两项
if(i%2==0)//一行四个好看用
printf("\n");
}
return0;
}
扩展资料
C语言程序Fibonacci数列计算兔子:
#include<stdio.h>
#defineYEAR12
intmain()
{
intf[YEAR+1]={0,1,2};//1月和2月兔子对数分别初始化为1,2,不使用f[0]
intmonth;
for(month=3;month<=YEAR;month++)//从3月份开始计算每个月总兔数
{
f[month]=f[month-1]+f[month-2];
}
for(month=1;month<=YEAR;month++)//输出12个月的总兔对数
{
printf("%d\t",f[month]);
}
printf("\nsum=%d\n",f[YEAR]);//输出年末的兔子总数
return0;
}
本文先讲解了如何使用数组进行编程的方法,然后给出斐波那契数列用C语言实现的源码,最后给大家留了一道输出斐波那契数列前20项的习题,参考我们给出的源码进行相关算法的实现即可。
#include<stdio.h>
#include<stdlib.h>
int main(){
int i;
long long f[50];
f[0] = f[1] = 1;
long long sum = 2;
printf("i=1\tfi=1\tsum=1\n");
printf("i=1\tfi=1\tsum=2\n");
for(i=2;i<50;i++){
f[i]=f[i-1]+f[i-2];
sum += f[i];
printf("i=%d\tfi=%lld\tsum=%lld\n",i+1,f[i],sum);
}
printf("%lld\n",sum);
system("pause");
return 0;
}
谢谢啦
#include <stdio.h>
int main()
{
unsigned long f1,f2,sum;
int i;
f1=1;f2=1;
sum=f1+f2;
for(i=1;i<25;i++)
{
f1=f1+f2;
sum=sum+f1;
f2=f2+f1;
sum=sum+f2;
}
printf("sum=%d\n",sum);
return 0;
}
为什么输出来是一个负数值啊?
值超出了打印的范围。
最后的打印改成:
printf("sum=%lld\n",sum);
2015-01-07
int fib(int n)
{
if(n==1||n==2)
return 1;
else
return fib(n-2)+fib(n-1);
}
int main()
{
int i,s=0;
for(i=1;i<=50;i++)
s=s+fib(i);
printf("前50项和为:%d",s);
return 0;
}
为什么输出不出来啊?