C和指针之函数之实现阶乘和斐波那契数(递归和非递归)
1、问题
2、代码实现
#include <stdio.h>int num = 0;
//递归实现斐波那契数
// n <=2, f(n) = 1, n > 2 f(n) = f(n - 1) + f();
long fibonacci(int n)
{//计算fibonacci(3)计算了多少次if (n == 3)num++;if (n <= 2){printf("num is %d\n", num);return 1;}return fibonacci(n - 1) + fibonacci(n - 2);
}//非递归实现斐波那契数
long fibonacci1(int n)
{long result = 1, pre_result = 1, next_pre_result;while (n > 2){n -= 1;next_pre_result = pre_result;pre_result = result;result = pre_result + next_pre_result;}return result;
}//递归实现n的阶乘
//n <= 1, f(n) = 1, n > 1 f(n) = n * f(n - 1);
long factorial(int n)
{if (n == 1)return 1;return n * factorial(n - 1);
}
C和指针之函数之实现阶乘和斐波那契数(递归和非递归)相关推荐
- 阶乘与斐波那契数的理解
在算法导论第三章中,提到了阶乘和斐波那契数,颠覆或者说是加深了我以前对这两种数的理解.以前是无法想象这个数有多大,但现在是有了一个概念. 阶乘 阶乘的定义为 n!= n>0?1:n*(n-1)! ...
- JavaScript实现闭式函数计算特定位置的斐波那契数fibonacciNthClosedForm算法(附完整源码)
JavaScript实现闭式函数计算特定位置的斐波那契数fibonacciNthClosedForm算法(附完整源码) fibonacciNthClosedForm.js完整源代码 fibonacci ...
- Python 递归算 阶乘 法斐波那契数 不死兔问题
递归算法 阶乘 n!=nn-1n-2*-1 def fac(n):"""求某数的阶乘值:param n:某数:return:阶乘"""# 递 ...
- 递归——阶乘加斐波那契数列(简单掌握递归思想的敲门砖)
话不多说,先上源码: 阶乘: #include<iostream> #include<bits/stdc++.h> using namespace std;int JieChe ...
- rust(39)-递归-阶乘与斐波那契数
Finished dev [unoptimized + debuginfo] target(s) in 0.04sRunning `F:\learn\rustlearn\learn35\target\ ...
- 递归算法小结(数的阶乘、斐波那契和汉诺塔问题)
递归是一项重要的编程技术,它让函数可以从函数体内部调用自身.递归通常把一个大型复杂的问题层层简化为一个,与原问题相似的规模较小的问题来求解,使用递归策略只需少量的程序就可描述出解题过程所需要的多次重复 ...
- python多种计算阶乘和斐波那契数列的六脉神剑
目录 前言 一.求阶乘 1.第一种方法 2.第二种方法 3.第三种方法 4.第四种方法 5.第五种方法 6.第六种方法 二.斐波那契数列 1.第一种方法 2.第二种方法 3.第三种方法 前言 最近在p ...
- 使用函数输出指定范围内的斐波那契数
题目描述: 本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数.所谓Fibonacci数列就是 ...
- 数据结构与算法—递归算法(从阶乘、斐波那契到汉诺塔的递归图解)
目录 递归介绍 递归求阶乘 递归求斐波那契 递归解决汉诺塔 总结 递归介绍 递归:就是函数自己调用自己. 子问题须与原始问题为同样的事,或者更为简单: 递归通常可以简单的处理子问题,但是不一定是最好的 ...
最新文章
- 【THML】兴唐第二十八节课 几个小程序
- 高达82 fps的实时文本检测,可微分二值化模块
- Machine Learning - Andrew Ng on Coursera (Week 2)
- STM8S103F2 EEPROM读写
- 1-7docke的网络模式
- 安卓9.0添加服务修改SELinux
- 《LINUX与UNIX SHELL编程指南》学习笔记
- 如何查看/统计当前AD域控制器的活动用户
- 一种结合颜色特征和区域生长的疾病斑图像分割方法(复杂环境下分割效果好)
- json文件使用tips
- SQLyog详细使用教程
- 科普 | USB4的全面解读
- 企业微信之发送图片消息(源码下载)
- 怎么把柱形图和折线图放在一起_Excel图表制作:柱形图和折线图的组合图案例...
- 学习到第一个国庆的感想
- 手把手教你入门Hadoop(附代码资源)
- 蓝牙耳机音质变差或许该注意这些问题,学生党什么牌子蓝牙耳机性价比高?
- TCP三次握手及其相关问题
- 如何优雅的研究 RGSS3 (三) 调整窗口的细节
- 如果看待HarmonyOS鸿蒙开闭源的抉择
热门文章
- Dapr牵手.NET学习笔记:跨物理机负载均衡服务调用
- 运维管理工具-- Deploy Assistant
- C# this关键字的3种用法
- dotnet 在 UOS 国产系统上使用 Xamarin Forms 创建 xaml 界面的 GTK 应用
- 译 | .NET Core 3.0 对诊断的改进
- .NET开发人员如何开始使用ML.NET
- ASP.NET Core 网站运行时修改设置如何自动生效
- 使用PerfView监测.NET程序性能(一):Event Trace for Windows
- Xamarin中国技术社区及BXUG官网上线啦
- [译]ASP.NET Core 2.0 带初始参数的中间件