3.递归-给定正整数n(项数),返回响应的斐波那契数值

复制代码
#include <stdio.h>
unsigned int Loop_Fibonacci(unsigned int n);
unsigned int Recu_Fibonacci(unsigned int n);
int main()
{
   
  //给定正整数n(项数),返回响应的斐波那契数值
  //斐波那契额数列(1、1、2、3、5、8、13...)
  int n = 30;
  printf("循环实现:%u\n", Loop_Fibonacci(n) );
  printf("递归实现:%u\n", Recu_Fibonacci(n) );


    return 0;
}
//循环实现
/*
n1 = 1
n2 = 1
n3 = n1 + n2 = 2

n1 = n2 1
n2 = n3 2
n3 = n1 + n2 = 3

n1 = n2 = 2
n2 = n3 = 3
n3 = n1 + n2
*/
unsigned int Loop_Fibonacci(unsigned int n)
{
  int a1 = 1;
  int a2 = 1;
  
  if( n <= 2 )
  {
      return 1;

  }else{

      int n1 = a1;
      int n2 = a2;
      int n3 = n1 + n2;

      for (int i = 4; i <= n; ++i)
      {
          n1 = n2;
          n2 = n3;
          n3 = n1 + n2;
          //printf("%d\n", n3);
      }

      return n3;

  } 
  }  
//递归实现
/*
1
1
2
3
5
8
13
*/  
unsigned int Recu_Fibonacci(unsigned int n)
{
  return n<=2 ? 1 : Recu_Fibonacci(n -1) + Recu_Fibonacci(n -2);
}   
复制代码

 

posted @   学而不思则罔!  阅读(92)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示