今天 在 写 二叉树 的 顺序存储方式时,遇到了 一个数学问题。

已知,节点数 为 n 的 完全 二叉树的 深度 k 为  : k = log2 N + 1,log2N向下取整。查了 一下 C 里 math.h 只有 log 和 log10 的函数。log 是 以 e 为底数, log10 是以 10 为底数,那怎么 求 以2为底的树呢?

百度了 一下 才 知道   log2n = In(N) / In(2)  ,In 是 以 e 为底数的,其值是2.71828...,用到了对数的 换底公式。

数学学的好,对于 一个软件开发人员是很重要的。哎。。上网查了一下,对数的其他公式,以便以后 温故。

1、

2、

3、

4、

5、

换底公式 
下面上代码:
// log2.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include <math.h>int _tmain(int argc, _TCHAR* argv[])
{int result = log(16.0)/log(2.0);printf("%d",result);return 0;
}

输出: 4

参考网址:点击打开链接

C 里 求 log2 N 的问题相关推荐

  1. C语言中负数补码的方法,c语言里求负数补码的总结不足与优点.docx

    c语言里求负数补码的总结不足与优点 看C语言编码转换--------负数的二进制表示方法 XX-09-0710:49:17|分类:|标签:|举报|字号订阅 今天在看C语言编码转换时,既然对负数的二进制 ...

  2. Java求log2(N)

    关于Java求log2(N) System.out.println(Math.log(4));//1.3862943611198906 这个是以e为底,但是java没有提供Math.log2(),只有 ...

  3. 求log2(n)的整数部分的快速算法

    #求log2(n)的整数部分的快速算法 先看一下朴素算法: O(lgn) inline int log2_int(register int x){register int ans = 0;while( ...

  4. 数学公式之求 log2(1+x)-x的积分

    为了算神奇数字0x5F3759DF,有一步绕不开,那就是求 ∫ 0 1 [ l o g 2 ( 1 + x ) − x ] d x (0) \int_0^1[log_2(1+x)-x]dx \tag{ ...

  5. 《雷神之锤III》里求平方根的函数

    更新:有人问这个算法的原理.其实原理很简单.就是牛顿迭代求根.卡马克算法牛X的地方就是他选了一个常数作为起始值.而这个起始值让他只用一次迭代就够了. 从 这里看来的.QuakeIII自然就是 传奇高手 ...

  6. 雷神之锤III》里求平方根的函数

    QuakeIII自然就是传奇高手卡马克的杰作之一了.在有的CPU上,这个函数比普通的(float)(1.0/sqrt(x)快4倍!快的原因之一是用了一个神秘常数,0x5f3759df.普渡大学的Chr ...

  7. 【原创】MySQL里求给定的时间是所在月份的第几个礼拜

    Share 一个昨天写的函数. 目的是求给定的时间是所在月份的第几个礼拜. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ...

  8. mysql 系统月份_MySQL里求给定的时间是所在月份的第几个星期

    分享一个昨天写的MySQL函数. 目的是求给定的时间是所在月份的第几个星期. DELIMITER $$ USE `t_girl`$$ DROP FUNCTION IF EXISTS `weekofmo ...

  9. mysql一个礼拜能学会么_【原创】MySQL里求给定的时间是所在月份的第几个礼拜...

    Share 一个昨天写的函数. 目的是求给定的时间是所在月份的第几个礼拜. DELIMITER $$ USE `t_girl`$$ DROP FUNCTION IF EXISTS `weekofmon ...

  10. mysql weekofmonth_MySQL里求给定的时间是所在月份的第几个礼拜

    Share 一个昨天写的函数. 目的是求给定的时间是所在月份的第几个礼拜. DELIMITER $$ USE `t_girl`$$ DROP FUNCTION IF EXISTS `weekofmon ...

最新文章

  1. [deviceone开发]-do_Http组件示例
  2. 中小企业信息化--网页设计模拟题1
  3. Linux查看和剔除当前登录用户详细教程
  4. 四、Java多人博客系统-2.0版本
  5. Spring MVC 的xml一些配置
  6. Jbox帮助文档,默认的属性含义
  7. 圆方圆python入门:如何学习(二)
  8. jcr多久更新一次_拼多多商品价格竞争力星级有什么用?多久更新一次?
  9. Android——继续深造——从安装Android Studio 2.0开始(详)
  10. “凡事不发朋友圈的人,都是过的不好的人”你认同这句话吗为什么?
  11. 【王道计组笔记】半导体存储器RAM ROM
  12. Mybatis的两种分页方式:RowBounds和PageHelper
  13. android 行居中,android自己定义换行居中CenterTextView
  14. Hibernate的双向1-N关联(五)
  15. NetBean将IDE设置导出为Zip存档
  16. 缺少计算机所需的介质程序,win10系统UEFi安装提示“缺少计算机所需的介质驱动程序”的图文方案...
  17. 分享一个自己做的记账的小程序 - 智能记账,欢迎朋友们体验
  18. java毕业设计房产交易系统Mybatis+系统+数据库+调试部署
  19. python eel 多线程_Python的一个轻量级桌面GUI开发第三方库:Eel
  20. Havel–Hakimi算法学习笔记(哈维尔算法)详细【Python】

热门文章

  1. latex 中对同一脚注进行引用
  2. 卷积神经网络——灰度图像的卷积
  3. 【寒江雪】Go实现Builder Pattern
  4. Python编写简易别踩白块儿脚本
  5. Python的Method理解
  6. win7系统传奇如何架服务器,win7系统如何架设传奇服务端玩游戏更流畅
  7. 公司禁用QQ,破解方法(洋葱tor 安装配置)
  8. 秋风:教育部办学还是学校办学?
  9. summer 's wonderful so why not SMILE
  10. linux版qq怎么传文件,QQ for linux终于能在线传送文件了~