当前位置:首页 » 编程语言 » c语言递归法怎么打印斐波那契
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言递归法怎么打印斐波那契

发布时间: 2023-07-16 13:20:10

Ⅰ 求用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语言问题:运用数组与递归函数的知识求解输入一个整数,输出对应的斐波那契数列

这个不难,我写给你,你自己看一下。
代码:
#include <stdio.h> //调用头文件

int fib(int num);//函数声明

int main()//主函数
{
int num;
printf(”输入数值:”);
scanf(”%d”,&num);
printf(”%d\n”,fib(num));
}

int fib(int num)
{
int result;
if(n==0 || n==1)
result=1
else
result=fib(num-1)+fib(num-2);//递归调用函数
return result;
}

Ⅲ 我想用递归写斐波那契数列,c语言

代码:

#include&lt;stdio.h&gt;

int Fib(int n){//自定义函数

if(n&lt;0)

return-1;

else if(n==0)

return 0;

else if(n==1)

return 1;

else

return Fib(n-1)+Fib(n-2);

}

int main(){

int num;

printf("请输入要求取的第n项斐波那契数列n=");

if(scanf("%d",&num)){

if(num&gt;=0){

printf("%d",Fib(num));

}

else

printf("Error!!!");

return 0;

}

return 0;

}

(3)c语言递归法怎么打印斐波那契扩展阅读:

斐波那契数列排列组合

有一段楼梯有10级台阶,规定每一步只能跨一级或两级,要登上第10级台阶有几种不同的走法

这就是一个斐波那契数列:登上第一级台阶有一种登法;登上两级台阶,有两种登法;登上三级台阶,有三种登法;登上四级台阶,有五种登法……

1,2,3,5,8,13……所以,登上十级,有89种走法。

类似的,一枚均匀的硬币掷10次,问不连续出现正面的可能情形有多少种?

答案是(1/√5)*{[(1+√5)/2]^(10+2)-[(1-√5)/2]^(10+2)}=144种。

求递推数列a⑴=1,a(n+1)=1+1/a(n)的通项公式

由数学归纳法可以得到:a(n)=F(n+1)/F(n),将斐波那契数列的通项式代入,化简就得结果。

Ⅳ C语言编程:用递归和非递归法输出斐波那契数列

递归法:
#include<stdio.h>
void main()
{
int Fibonacci(int n);
int n,i,c=0;
printf("请输入n的值:");
scanf("%d",&n);
for(i=1; i<=n; i++)
{
c = Fibonacci(i);
printf("%12ld",c);
if(i%4==0) //用于换行 4个一行;
printf("\n");
}
}
int Fibonacci(int n)//函数部分;
{
long int f;
if(n==1 || n==2)
{
f=1;
}
else
if(n>=3)
f = Fibonacci(n-1) + Fibonacci(n-2);
return f;
}
非递归法:
#include<stdio.h>
void main()
{
int i,n;
int f[]= {1,1};
printf("请输入n的值:");
scanf("%d",&n);
for(i=2; i<=n; i++)
f[i] = f[i-2] + f[i-1];
for(i=0; i<=n; i++)
{
if(i%5==0) printf("\n");
printf("%12d",f[i]);
}
printf("\n");
}
递归可以使程序看起来比较简洁,但缺点是效率比较低,并且可能导致栈溢出,因此需要灵活使用递归。

Ⅳ 编写一段C语言程序:利用函数的递归调用求斐波那契数列,该数列的公式如下:

#include<stdio.h>
#include<stdlib.h>

int f(int n)
{
if (n == 1 || n == 2)
{

return 1;
}
else
{

return f(n - 1) + f(n - 2);
}
}

int main()
{

int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
printf("%d ", f(i));
}

system("pause");
return 0;

}

Ⅵ 用C语言编程 斐波那契数列:1,1,2,3,5,8,13…,输出前13项,每行输出5个数。

public class FeiBoMethod {

// 使用递归方法

private static int getSum(int num) {

if (num== 1 || num== 2)

return 1;

else

return getSum(num- 1) + getFibo(num- 2);

}

public static void main(String[] args) {

System.out.println("斐波那契数列的前13项为:");

for (int i = 1; i <= 13; i++) {

System.out.print(getSum(i) + " ");

if (i % 5 == 0)

System.out.println();

}

}

}

(6)c语言递归法怎么打印斐波那契扩展阅读:

使用数组的方式实现

publicclassFeiBoMethod{

//定义数组方法

publicstaticvoidmain(String[]args){

intarr[]=newint[13];

arr[0]=arr[1]=1;

for(inti=2;i<arr.length;i++){

arr[i]=arr[i-1]+arr[i-2];

System.out.println("斐波那契数列的前13项如下所示:");

for(inti=0;i<arr.length;i++){

if(i%5==0)

System.out.println();

System.out.print(arr[i]+"\t");