61. 写一个函数isPowerOfTwo判断是不是2的幂次方
bool isPowerOfTwo(int n)
{
unsigned int k = 1;
if(n<=0)
return false;
if(n==1)
return true;
for(int i = 1;i<32;i++)
{
k*=2;
if(k==n)
return true;
}
return false;
}
62. 写一个函数isPowerOfThree判断是不是3的幂次方
bool isPowerOfThree(int n){
unsigned int k = 1;
if(n<=0)
return false;
if(n==1)
return true;
for(int i = 0;i<=20;i++)//3的20次幂已经是32位整型的上限了。
{
k*=3;
if(k==n)
return true;
}
return false;
}
63.n 的第 k 个因子
int kthFactor(int n, int k)
{
int count = 0;
for(int i = 1;i<=n;i++)
{
if(n%i==0)
count++;
if(count==k)
return i;
}
return -1;
}
64.有效的完全平方数
防止溢出,要用long long型
死循环枚举所有情况
bool isPerfectSquare(int num)
{
int i = 0;
long long sum = 0;
while(1)
{
i++;
sum=(long long)i*i;
if(sum==num)
return true;
if(sum>=num)
return false;
}
}
65.搜索旋转排序数组
int search(int* nums, int numsSize, int target)
{
int i;
for(i =0; i < numsSize; i++ )
{
if(nums[i]== target)
{
return i;
}
}
return -1;
}