use MathJax to parse formulashtml
Description函数
问题很简单,求x^n.请编写pow()函数.post
声明以下:code
int pow(int x,int n,int p)orm
//pow的功能是实现x^n,最后1个参数p没有用。htm
系统会自动在程序的最后加上以下代码:
blog
int main()
ip
{
int x,n;
scanf("%d %d",&x,&n);
printf("%d\n",pow(x,n,1));
return 0;
}
Inputio
x和n 0 < x,n < 2^31-1form
Output
x^n .最后结果小于 2^31-1
Sample Input
2 3
Sample Output
8
Hint
加上相应的头文件,并实现函数
int pow(int x,int n,int p)
O(logn)
思路:根据2进制来算 好比说2的13次方 13是1101 能够算成2的8次方乘以2的4次方乘以2的1次方
#include <stdio.h> int pow(int x,int n,int p) { int ans=1; if(n==0) return 1; while(n!=0) { if(n%2==1) ans*=x; n/=2; x*=x; } return ans; } int main() { int x,n; scanf("%d %d",&x,&n); printf("%d\n",pow(x,n,1)); return 0; }