一种改进的pow(x,y)
来源:互联网 发布:topview数据 编辑:程序博客网 时间:2024/05/05 11:14
#include <iostream>#include <cstdlib>#include <ctime>using namespace std;/*This is a free Program, You can modify or redistribute it under the terms of GNU*Description:一种改进的求整数x的y次幂*Language: C++*Development Environment: VC6.0*Author: Wangzhicheng*E-mail: 2363702560@qq.com*Date: 2012/10/14*//*核心方法是利用乘方的性质当x求出,x^2=x*x,当x^2求出,x^4=(x^2)*(x^2) ,依次类推*/const int max=100000000; //底数最大的数class Power {private:int base; //底数int exponent; //指数long result; //存放结果public:Power(int b,int e) {if(b<0 || b>=max) {cerr<<"底数应该大于等于0且小于"<<max<<endl;exit(1);}if(e<0 || e>max/10000) {cerr<<"指数应该大于等于0且小于"<<(max/10000)<<endl;exit(1);}base=b;exponent=e;}void power() {int result=1;power(exponent,result);setResult(result);show();}void power_common() {int i;int result=1;for(i=0;i<exponent;i++) {result=result*base;}setResult(result);show();}void show() {if(result<0) {cerr<<"结果溢出!"<<endl;result=0;return;}cout<<"power("<<base<<","<<exponent<<")="<<result<<endl;}private:void setResult(int r) {result=r;}void power(int exponent,int &result) {int pre=1; //前面值int temp=base; //每一位对应的权值while(exponent) {if(exponent%2) {result=pre*temp;pre=result;}temp=temp*temp;exponent/=2;}}};void main() {srand(unsigned(time(0)));int i;int x,y;const int N=10;for(i=0;i<N;i++) {x=rand()%(N*N);y=rand()%N;Power power(x,y);power.power();power.power_common();}}
- 一种改进的pow(x,y)
- pow(x,y)函数的实现算法
- pow计算x的y次方
- pow() 函数返回 x 的 y 次方
- pow(x,y)函数
- pow(x,y)函数的用法及实现算法
- Java Math.pow(x,y)的使用坑
- c语言中的pow(x, y)的使用
- CareerCup calculate (x^y)%z without pow();
- C语言pow()函数:求x的y次方(次幂)
- C语言pow()函数:求x的y次方(次幂)
- Python标准库:内置函数pow(x, y[, z])
- 新手喜闻乐见的x++,y++,++x,++y
- x的y次方
- pow(x,n)的实现
- 求解用g(X)的线性表达式最佳近似f(Y)的一种方式
- Pow(x,n) x的n次方
- x+=y与x=x+y的区别
- GCC 编译动态链接库和静态链接库 + 大型工程Makefile编写 + Linux环境变量的设置和查看方法
- Emacs加速启动
- 各地少先队集中开展红领巾心向党主题队日-少先队-主题队日-红领巾心向党
- hdu4396
- 第八届湖南省大学生程序设计大赛 - 笑不语@USC 随笔,感想,解题报告
- 一种改进的pow(x,y)
- Ubuntu通过修改配置文件来进行网络配置
- 地理新教材降难度-小学生只需明白地球是圆的-人教社-新课改-教材
- 一个fork的思考
- [iOS] XML解析
- ubuntu 安装texlive2012
- 链表
- NTFS 下的硬链接(hard link)与符号链接(symbolic link)
- 输入四个数,输出最大值最小值