0
点赞
收藏
分享

微信扫一扫

仅仅表达思想递归和非递归

仅仅表达思想递归:

斐波那契数列 1 1 2 3 5 8 13 21 34 55

#include<stdio.h>

int count = 0;

int Fib(int n)

{

 if (n == 4)

 count++;//计算重复度,重复度过大,时间浪费

 if (n <= 2)

 {

 return 1;

 }

 else

 return Fib(n - 1) + Fib(n - 2);//效率低是因为重复很多

}

int main()

{

 //第n个斐波那契数

 int n = 0;

 int fib = Fib(n);

 scanf("%d", &n);

 

 printf("%d\n", Fib);

 printf("count=%d\n", count);

 return 0;

}

//仅仅表达思想非递归:

#include<stdio.h>

int Fib(int n)

{

 int a = 1;

 int b = 1;

 int c = 0;

 while (n >= 3)

 {

 c = a + b;

 a = b;

 b = c;

 n--;//进来几次,算几次

 }

 return c;

}

int main()

{

 //第n个斐波那契数

 int n = 0;

  int fib=Fib(n);

 scanf("%d", &n);

 

 printf("%d\n", Fib);

 return 0;

}

举报

相关推荐

0 条评论