开始学习数据结构和算法,有一个取幂快速算法例子,自己写了一下
发现2的62次方这种数打印的值是0,不知道为啥
下面是代码
#include<stdio.h>
long int pow(long int x,unsigned int n);
long int pow(long int x,unsigned int n)
{
if(n==0)
{
return 1;
}
else if(n==1)
{
return x;
}
else if(!(n%2))
{
return pow(x*x,n/2);
}
else
{
return pow(x*x,n/2)*x;
}
}
int main(void)
{
int x,n;
scanf("%d%u",&x,&n);
printf("%d",pow(x,n));
return 0;
}
```c
