1、问题

A(n) = n / (2 * n + 1)
B1 = 2 + A1;
B2 = 2 + A1 * (2 + A2);
B3 = 2 + A1 * (2 + A2 * (2 + A3));
....以此类推,求B(n)

2、代码实现

#include <stdio.h>/**
A(n) = n / (2 * n + 1)
B1 = 2 + A1;
B2 = 2 + A1 * (2 + A2);
B3 = 2 + A1 * (2 + A2 * (2 + A3));
....以此类推,求B()
**/
float A(float n)
{if (n < 0)return 0;float result = n / (2 * n + 1);return result;
}//非递归实现
float B(float n)
{if (n < 0)return 0;float sum = 1;for (int i = n; i >= 1; --i) {sum = sum * A(i) + 2;}return sum;
}//递归实现
float recursion_B(float n)
{if (n < 0)return 0;static float sum = 1;if (n == 0)return sum;else {sum = sum * A(n) + 2;recursion_B(n - 1);   }
}int main()
{for (int i = 0; i < 20; i++)printf("B(%d) is %f\n", i, B(i));printf("recursion_B(10) is %f\n",  recursion_B(10));
}

3、运行结果

B(0) is 1.000000
B(1) is 2.333333
B(2) is 2.800000
B(3) is 2.990476
B(4) is 3.073016
B(5) is 3.109957
B(6) is 3.126829
B(7) is 3.134643
B(8) is 3.138300
B(9) is 3.140024
B(10) is 3.140842
B(11) is 3.141232
B(12) is 3.141419
B(13) is 3.141509
B(14) is 3.141552
B(15) is 3.141573
B(16) is 3.141583
B(17) is 3.141588
B(18) is 3.141591
B(19) is 3.141592
recursion_B(10) is 3.140842

递归和非递归实现规律函数相关推荐

  1. C++第七次作业(函数_递归与非递归_多文件)

    文章目录: 一:C++递归与非递归实现整数的阶乘 代码实现 运行结果 二:C++递归与非递归实现Fibonacci数列的计算:a0=1; a1=1; a2=a0+a1; a3=a1+a2; ..... ...

  2. 编写函数 int fac(int x)计算 x!的值。在主函数中输入 n 和 m 的值,通过调用函数 fac 计算m Cn 的值(要求分别用递归和非递归的方法编写函数 fac)

    编写函数 int fac(int x)计算 x!的值.在主函数中输入 n 和 m 的值,通过调用函数 fac 计算m Cn 的值(要求分别用递归和非递归的方法编写函数 fac) 递归: #includ ...

  3. c语言中fact函数怎么调用,C语言程序题: 1、编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现...

    点击查看C语言程序题: 1.编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现具体信息 答:int fac(int n) //非递归{int f=1; for(;n;) ...

  4. 分别采用递归和非递归方式编写两个函数,求一棵二叉树中叶子节点个数

    分别采用递归和非递归方式编写两个函数,求一棵二叉树中叶子节点个数 #include #include #define MAXSIZE 50 typedef char datatype; typedef ...

  5. C和指针之函数之实现阶乘和斐波那契数(递归和非递归)

    1.问题 实现阶乘和斐波那契数(递归和非递归) 2.代码实现 #include <stdio.h>int num = 0; //递归实现斐波那契数 // n <=2, f(n) = ...

  6. 【恋上数据结构】递归(函数调用过程、斐波那契数列、上楼梯、汉诺塔、递归转非递归、尾调用)

    递归(Recursion) 什么是递归? 函数的调用过程(栈空间) 函数的递归调用过程 递归实例分析(1 + 2 + 3 + ... + 100 的和) 递归的基本思想.使用套路 斐波那契数列 fib ...

  7. C语言/C++常见习题问答集锦(六十四) 之兔子繁殖(递归与非递归)

    C语言/C++常见习题问答集锦(六十四) 之兔子繁殖(递归与非递归) 程序之美 1.C语言,计算1乘以3×5*-乘n的积,并输出结果,n值由键盘接收. #include<stdio.h>v ...

  8. 傅里叶变换算法c语言实现(递归与非递归)

    1.算法设计原理分析 把傅里叶变换公式进行拆分,按奇偶进行分组,使之转外为两个T(n/2)的计算式. 这样就可以找到了递归特性,可以一直拆分下去,直到一组只有一个数值.递归算法实现则可以为在每次递归中 ...

  9. 汉诺塔递归与非递归实现

    汉诺塔递归与非递归实现 背景介绍 汉诺塔(Tower of Hanoi),又称河内塔,是一个源于印度古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64 ...

  10. 全排列(含递归和非递归的解法)

    全排列在近几年各大网络公司的笔试中出现的比较频繁 首先来看看题目是如何要求的(百度迅雷校招笔试题). 用C++写一个函数, 如 Foo(const char *str), 打印出 str 的全排列, ...

最新文章

  1. RDKit |基于集成学习(Ensemble learning)预测溶解度
  2. python课程与c+课程有什么不同-南通渡课少儿编程:python和C的区别是什么?
  3. 一篇网易获奖的产品分析来敲门:『有道云笔记』产品体验报告
  4. hdu_5085_Counting problem(莫队分块思想)
  5. 无法打开此修补程序包”或“这个产品的安装来源无法使用”解决(转)
  6. RSS接触 - RSS中的XML文档
  7. 解决 GTK+/GNOME 3 环境下 Java Swing 程序使用本地 GTK+ 主题时菜单无边框 bug 的方法...
  8. 机器学习经典算法实践_服务机器学习算法的系统设计-不同环境下管道的最佳实践
  9. CentOS7 使用firewald
  10. 全球首个!腾讯优图开源3D医疗影像大数据预训练模型
  11. 时间管理—如何充分利用你的24小时
  12. ros开发语言python效率_Python 的开发效率真的比 Java高吗?
  13. Weave 网络结构分析 - 每天5分钟玩转 Docker 容器技术(64)
  14. 死在路上的创业者们:如何跨越市场推广之坎?
  15. 编译调试Apache HTTP Server
  16. CentOS6源码安装VSFTPD3
  17. 配置管理规范 配置管理计划_配置管理简介
  18. IGH_Master主站配置驱动伺服电机和变频器总结
  19. macbook pro怎么养小宠物?macbook pro养宠物设置方法
  20. 关于抽烟、戒烟、或者说是收放自如

热门文章

  1. 面向.NET开发人员的Dapr——发布和订阅
  2. 探索 .NET团队对API的设计流程
  3. 如何在 Asp.Net Core MVC 中处理 null 值
  4. InfluxDB 2.0 之Flux语法篇
  5. .NET Core加解密实战系列之——使用BouncyCastle制作p12(.pfx)数字证书
  6. 基于Prometheus和Grafana打造业务监控看板
  7. 配置文件中的数据库连接串加密了,你以为我就挖不出来吗?
  8. .Net微服务实战之DevOps篇
  9. .NETCore3.1中的Json互操作最全解读-收藏级
  10. asp.net core 使用Mysql和Dapper