Ali*_*eza 2 c++ largenumber exponentiation
在C++中,我如何计算像2009 ^ 1389这样的东西?(那是2009年提升到1389的权力,而不是按位异或.)
简单回答:你做不到.这就是:2009 ^ 1389是得大一些,以适应任何在C(严格来说,它是提供给您的数字类型的可能的,你可能有百万位整数或浮点数或东西,因为C语言标准是故意这些东西相当无限,但实际上你没有.)
如果你真正需要的是精确的整数值,那么出于一些数论的目的:你需要的是一个包含在非常大的整数上进行算术的东西的库.我推荐GMP(http://gmplib.org).这样的库将定义用于表示大整数的数据结构,以及用于对其进行操作的函数.阅读文档!
如果您真正需要的是近似值:也许您可以使用您关心的所有数字的对数,在这种情况下#include <math.h>使用log(a ^ b)= b log a的事实.
(前者似乎更可能是"acm"标签.)
| 归档时间: |
|
| 查看次数: |
3660 次 |
| 最近记录: |