⑴ c语言算斐波那契数列
数字
溢出~~。很明显的问题,你用高精度做吧,用
字符数组
模拟数字。
⑵ 求用C语言表达斐波那契数列
#include <stdio.h>
main( ){
long f1,f2,f;
int i,n;
scanf("%d",&n);
f1=f2=1;
if(n<=2)
f=1;
else
for(i=3;i<=n;i++){
f=f1+f2;
f1=f2;
f2=f;
}
printf("%ld
",f);
}
⑶ C语言斐波那契数列
利用斐波拉其数列计算公式计算:
(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}
⑷ C语言 斐波那契数列怎么写
#include<stdio.h>
int main(void)
{ int i,n,a[50]={1,1};
scanf("%d",&n);
for(i=2; i<n; i++)
a[i]=a[i-1]+a[i-2];
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
⑸ 斐波那契数列:c语言
你公式计算的公式不对 如果按照这个公式计算,只有0 和1的时候是一样的 剩下的都不一样
程序这样做
#include <stdio.h>
#include <math.h>
int f1(int i)
{
if(i == 0) return 0;
if(i == 1) return 1;
return f1(i - 1) + f1(i - 2);
}
int f2(int i)
{
#if 1
int ret;
double c;
c = (1.0+sqrt(5)/2.0);
ret =(int)(pow(c,i)/sqrt(5)+0.5);
#else
int ret;
double c, c1;
c = (1.0+sqrt(5))/2.0;
c1 = (1.0-sqrt(5))/2.0;
ret =(int)((pow(c,i) - pow(c1, i))/sqrt(5)+0.5);
#endif
return ret;
}
main()
{
int i = 0;
int r1, r2;
while(1)
{
r1 = f1(i);
r2 = f2(i);
if(r1 != r2)
printf("diff at %d, %d %d\n", i, r1, r2);
i ++;
}
}
在f2里面有一个#if 1 这时是用你的公式
改成#if 0后用的是正确的公式
⑹ 斐波那契数列 c语言
#include <stdio.h>
int fn(int a){
if (a==1) return 1;
else if (a==2) return 2;
else return fn(a-1)+fn(a-2);
}
void main (){
for (int i=1;i<=50;i++)
printf("%d::%d ",i,fn(i));
}
⑺ 用C语言编写Fibonacci数列
intfib[20]={0,0,1},i;
for(i=3;i<19;i++){
fib[i]=fib[i-1]+fib[i-2]+fib[i-3];
}
⑻ C语言 数组 斐波那契数列
#include "stdafx.h" //这是 VS 预编译头。其他系统删除。
#include<stdio.h>
#include<stdlib.h> //使用 system("pause"); 时需要。
//MS 否决了 scanf 等函数,加上下句,仍然可用。其他系统删除。
#pragma warning(disable:4996)
//问题:斐波那契数列的定义为: F1=1,F2=1,F(n)=F(n-2)+F(n-1)
int Fibonacci(int n)
{
if (n == 1)
return 1;
if (n == 2)
return 1;
return Fibonacci(n - 2, f1, f2) + Fibonacci(n - 1, f1, f2);
}
// VS 标准主函数声明,其他系统请根据系统更改。
int _tmain(int argc, _TCHAR* argv[])
{
int i, k, d[40];
scanf("%d", &k);
for (i = 0; i < k; i++)
{
scanf("%d", &d[i]);
}
for (i = 0; i < k; i++)
{
printf("%d\n", Fibonacci(d[i]));
}
system("pause"); //防止窗口一闪而过
return 0;
}
⑼ C语言编程:斐波那契数列
if的判断条件里面,正确的应该是
n==1
和
n==2。
如果写成n=1的话,就变成了将n赋值为1,并且这个算式会返回1,非0即为true。
这个判断条件会恒为真,而且n的值也会被改变。