编程搜索 [
狼盟旧档
]
论坛统计
请输入搜索关键字:
主题总数:270876
总帖数:1119824
注册会员总数:255497
今日总帖数:307
├─◆
狼盟首页
> 查看贴子 > 详细信息
楼主
求一个数的n次方
以前在Qbasic的乘方符号是“^”,
现在请问C里面有没有标准函数
或者是运算符号来算n次方的??
hpux [ 1 楼 ]
2006-01-30 10:04:00
#include <math.h>
double pow(double value,double power);
求某个数的乘方
tianyuan008 [ 2 楼 ]
2006-01-30 12:29:00
c++里面可以重载操作符的。
vb.net也可以重载操作符。
你翻出头文件来看看,想办法重载,不要和原来的运算符的参数表雷同。
ccpp [ 3 楼 ]
2006-01-30 16:06:00
对于一个数的N次很容易超出一般类型的表示范围,
如double 。
标准函数没有太大用处,
只能用数组保存每一位的结果!
ccpp [ 4 楼 ]
2006-01-30 16:15:00
#include <conio.h>
#include <stdio.h>
#define MAX 1000
/*显示最大数字1000位,如需要更大位数,应使用动态内存分配*/
int main()
{
int a[MAX],b,m,n,i,j,r,carry;
if(scanf("%d%d",&b,&n) != 2 )/*输入b的n的方*/
{
printf("input error!");
exit(1);
}
m = 0; a[m] = 1;
for ( j = 0;j < n; j++)
{
for ( carry = 0,i = 0;i <= m;i++)
{
r = (a[i] * b) + carry;
a[i] = r%10; /*保留i位的结果*/
carry = r/10; /*保留进位*/
}
if (carry) /*如果有进位*/
a[++m]=carry;
}
for (i = m; i >= 0; i--)
printf("%d",a[i]);
getch();
return 0;
}
flysun0311 [ 5 楼 ]
2006-01-30 18:50:00
也可以用静态局部变量来做.
其实是也是自找麻烦,不过他还是一种方法.
iAkiak [ 6 楼 ]
2006-01-30 19:49:00
@ccpp, 4
复杂度为O(n),其实可以改为O(log n)
记得以前讨论过这个的.求b的2的幂的幂相乘
n = 24 = 16 + 8
计算b^16 和 b^8做乘法,不必做24次乘法.
不过那样需要2个大数做乘法.
主题推荐
C/C++论坛
Visual Foxpro
Visual Basic
ASP
Visual C++
Java开发论坛
Delphi开发论坛
Qbasic开发论坛
.NET开发论坛
联系我们
|
网站地图
|
红魔论坛
|
U5论坛
|
PHP专家论坛
| |
Excel2007
|
中国赢网
|
商家联盟
RORChina|狼盟编程 版权所有 ©2008
京ICP证020289号
maito:moolao#gmail.com
[本站所有的内容为来自互连网,有任何版权问题请联系站长; 还有就是我的技术很菜的,所以上面这个邮箱不负责回复任何技术性问题。]