文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>a program a day 16

a program a day 16

时间:2010-10-12  来源:生无涯

/**
*求幂--递归法和非递归法
**/
#include<stdio.h>
#include<math.h>
//n>=0,非递归算法乘法次数为O(n)
//返回主可能很大,故用unsigned long
unsigned long myPower(int m,int n)
{
 int p = 1;
 while(--n >= 0)
  p = p * m;
 return p;
}
//n >= 0,递归算法乘法次数为O(log(n))
unsigned long myPow(int m,int n)
{
 if(0 == n)
  return 1;
 if(1 == n)
  return m;
 if(0 == n % 2)
 {
  //用tmp暂存myPow(m,n/2),以免重复计算,次句提高了算法的效率
  unsigned long tmp = myPow(m,n/2);
  return tmp * tmp;
 }
 if(0 != n % 2)
  return m * myPow(m,n-1);
}
int main()
{
 int m,n;
 printf("input m ,n :\n");
 scanf("%d,%d",&m,&n);
 printf("the result of power(%d,%d) is :%d\n",m,n,myPow(m,n));
 //printf("the result of power(%d,%d) is :%d\n",m,n,power(m,n));
 return 0;
}

相关阅读 更多 +
排行榜 更多 +
坦克冒险大师安卓版

坦克冒险大师安卓版

策略塔防 下载
自动防御

自动防御

策略塔防 下载
枪战大乱斗2

枪战大乱斗2

飞行射击 下载