
正文
c语言斐波函数第n c语言函数斐波那契数列
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言,输出斐波那契数列的第n项(注意不是前n项)和前n项之和
#includestdio.h
void main()
{
int fun(int n);
int m,n;long sum=0;
printf("请输入你要查询的第m项和前n项之和n的值\n");
printf("请输入你要查询的第m项:m=");
scanf("%d",m);
printf("\n");
printf("请输入前n项之和n的数值:n=");
scanf("%d",n);
printf("你要查询的第%d项的值是%d\n",m,fun(m));
for(int i=1;i=n;i++)
sum+=fun(i);
printf("你要查询的前%d项的和是%ld\n",n,sum);
}
int fun(int n)
{
long f;
if(n==1||n==2)
f=1;
else
f=fun(n-2)+fun(n-1);
return f;
}
相关问答
Q1: 输入一个整数n(1-50),输出第n个斐波拉契数。用C语言怎么 做
【解题思路】这道题首先要清楚什么是斐波接契数列c语言斐波函数第n,这种数列c语言斐波函数第n的前两项分别是0和1c语言斐波函数第n,然后从第三项开始,每项都等于前两项之和。比如:0,1,1,2,3,5,8,13,21,34,55,89,……所以,我们要求第n项,就得求出第n-2项和第n-1项,然后把这两项相加就得到第n项的值。因此,可以用一个循环,从3-n,逐项求解。
【程序代码】
#include stdio.h //加载基本输入输出头文件
int main() //主函数
{int n,a=0,b=1,c,i; //项数n,前二项a,前一项b,第n项c,循环变量i
printf("请输入第n项:"); //输出提示信息
scanf("%d",n); //从键盘接收项数n
if(n==1) c=0; //如果是第1项,c为0
if(n==2) c=1; //如果是第2项,c为1
for(i=3;i=n;i++) //从第三项开始逐项求解
{c=a+b; //当前项等于前两项之和
a=b,b=c;} //更新前两项,为下次循环做准备
printf("第%d项的值是: %d ",n,c); //输出第n项的值
getchar();getchar();} //等待键盘输入,避免程序闪退
【运行结果】
Q2: 已知斐波那契数列前两项均等于1,用C语言编写求取斐波那契数列第n项的尾递归算法。
尾递归是一种混合c语言斐波函数第n了迭代和递归c语言斐波函数第n的算法c语言斐波函数第n,C语言代码如下:
/* 斐波那契数列的尾递归写法 */
#include stdio.h
double fib(double n, double a, double b)
{
if(n=0.0)
return -1.0; //错误输入
else if(n==1.0 || n==2.0)
return b; //b记录最靠后的一项
else
{
while(n2.0)
return fib(n-1.0, b, a+b);
}
}
int main(int argc, char *argv[])
{
double d, n = 20.0;
d = fib(n, 1.0, 1.0);
printf("斐波那契数列第 %.f 项的值为 %.f。\n", n, d);
return 0;
}
Q3: c语言求斐波那契数列的第n项,要求输入n(n
#include stdio.h
int main()
{
int f1=1,f2=1,i=1,n,s;
scanf("%d",n);
if(n==1) //判断时候是要两个等号下同
printf("1");
if(n==2)
printf("1");
else
{
while(i=n-2)
{
s=f1+f2;
f1=f2;
f2=s;//c语言斐波函数第n你那个算法好像不对这样就可以c语言斐波函数第n了
i=i+1;
}
printf("%d\n",s);
}
}//及时采纳
Q4: C语言输出第n~m项斐波那契数列
斐波拉契c语言斐波函数第n的当前像是前两项之和。
#include stdio.h
int fibonacci(int n)
{
if (n = 2)
return 1;
return fibonacci(n-1) + fibonacci(n-2);
}
int main()
{
int n, m;
printf("input n and m : ");
scanf("%d %d", n, m);
printf("fibonacci n ~ m : ");
for (int i = n; i = m; i++)
printf("%d ", fibonacci(i));
return 0;
}
Q5: 用C语言求斐波那契数列第n项?
#includestdio.h
//求斐波那契数列第n项
int fib(int n)
{
if(n == 0 || n == 1)
return 1;
else
return (fib(n-1)+fib(n-2));
}
int main()
{
int i,n;
printf("-----输入一个斐波那契数-----\n");
scanf("%d",n);
for(i=0;in;i++)
printf("%d\t",fib(i));
printf("\n");
return 0;
}
编译结果:
./a.out
-----输入一个斐波那契数-----
8
1 1 2 3 5 8 13 21
c语言斐波函数第n的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言函数斐波那契数列、c语言斐波函数第n的信息别忘了在本站进行查找喔。







