[开发工具] 使用查表提速计算

[复制链接]
791|7
 楼主| jf101 发表于 2024-1-29 10:53 | 显示全部楼层 |阅读模式


一个资深的C语言程序员,基本上不会在自己的主循环里搞什么复杂的运算工作,绝对都是先计算好了,再到循环里查表。看下面的例子:

旧代码:

  1. long factorial(int i)
  2. {
  3.     if (i == 0)
  4.       return 1;
  5.     else
  6.       return i * factorial(i - 1);
  7. }

查表法新代码:

  1. static long factorial_table[] = {1, 1, 2, 6, 24, 120, 720  /* etc */ };
  2. long factorial(int i)
  3. {
  4.     return factorial_table[i];
  5. }

如果需要建立的表很大,那么可以通过一个初始化函数,在循环外临时生成表格。

tpgf 发表于 2024-2-2 14:19 | 显示全部楼层
可以一边计算一边查表吗?会不会降低工作效率
coshi 发表于 2024-2-2 14:59 | 显示全部楼层
查表虽然可以对计算进行提速 但是感觉结果并没有那么精确
qcliu 发表于 2024-2-2 19:07 | 显示全部楼层
使用什么语句进行查表 也 要根据表格的规模来定
drer 发表于 2024-2-2 19:44 | 显示全部楼层
如果表格中的数据都是固定数据且没有规律的话 应该怎么办呢
kxsi 发表于 2024-2-2 20:16 | 显示全部楼层
使用软件查表的方式 也是要看应用的目的的
wiba 发表于 2024-2-2 20:53 | 显示全部楼层
如果不能实现临时生成表格的话  数据量大的话 占用的空间会不会就很大呢
scu319hy 发表于 2024-2-3 00:39 | 显示全部楼层
动态规划变成静态规划
您需要登录后才可以回帖 登录 | 注册

本版积分规则

262

主题

2024

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部