c语言尾递归示例
来源:互联网 发布:java 线程通信 编辑:程序博客网 时间:2024/05/16 09:33
尾递归函数定义:
1.一个函数中所有递归形式的调用都出现在函数的;
2.当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分;
尾递归函数优点:
1.占用内存空间少,运行效率更高。
运行结果:
1 + 1/2 + 1/3 + 1/4 + 1/5 = 2.28Program ended with exit code: 0
main.c
#include <stdio.h>double H(int, double);int main(void) { int n = 5; double a = 1.0; printf("1 + 1/2 + 1/3 + 1/4 + 1/5 = %.2lf\n", H(n, a)); return 0;}double H(int n, double a) { if (n < 0) printf("The value must be a nonnegative.\n"); else if (n == 0) return n; else if (n == 1) return a; //我的编译器(Xcode7)最后的return语句如果包含在if-else语句中会报错:"Control may reach end of non-void function." return H(n - 1, a + 1.0 / n); // 必须为1.0/n如果是1/n则结果为int型小数位会自动丢弃}
0 0
- c语言尾递归示例
- 递归与尾递归(C语言)
- 递归与尾递归(C语言)
- 递归与尾递归(C语言)
- 递归与尾递归(C语言)
- 递归与尾递归 (C语言)
- 递归与尾递归(C语言)
- C语言之尾递归
- 快速排序尾递归版C语言
- C语言 阶乘递归
- C语言之递归
- C语言 -- 递归学习
- C语言递归练习
- C语言递归
- 【C语言】递归实现。
- C语言实现-递归
- c语言递归函数
- 【C语言】递归 - 汉诺塔
- HDU - 3480 Division(四边形优化)
- html中通过文字控制文本的颜色和字体(简单演示)
- javascript基础
- [Uva247][Tarjan求强连通分量][Calling Circles]
- JAVA基础学习(二十二)--IO流四-对象序列化、管道流、RandomAccessFile、DataStream、ByteArrayStream、转换流的字符编码
- c语言尾递归示例
- 社保断了,一定要这么办!
- MySQL事务隔离级别详解
- iOS6新特征:UICollectionView介绍
- TCP/IP和Socket的关系
- CSS学习笔记
- static_cast函数
- grunt和seajs的打包初体验
- Android_02_线性布局