64,190
社区成员
发帖
与我相关
我的任务
分享1.n数n和
int sumNums(int n) {
int i, c = 0;
for (i = 0; i <= n; i++)
c += i;
return c;
}
2. 二次幂检测
bool isPowerOfTwo(int n) {
int i, c = 1, w = 0;
if (n == 1) return 1;
for (i = 0; i <= 31; i++) {
c <<= 1;
if (c == n)
return 1;
if (c > n)
return 0;
}
return 0;
}
用了一个‘1’来拦下第一个,算是偷懒8(明明线下测试没问题但是在力扣报错了,那段错误的输入方式我试验了一下明明没问题啊)
3:三次幂检测
bool isPowerOfThree(int n){
int c=0;
if (n == 0)
return 0;
c = log(n) / log(3) + 1e-8;
if ( (c = pow(3, c)) == n)
return 1;
else
return 0;
}
感谢 @安 大佬提供的扰值 ‘1e-8’,学到了学到了
4:4次幂检测
int isPowerOfTwo(int n) {
int i, c = 1, w = 0;
if (n == 1) return 1;
for (i = 0; i <= 15; i++) {
c <<= 2;
if (c == n)
return 1;
if (c > n)
return 0;
}
return 0;
}
同于上上一个,只是这次移动了2下而已
5.n的第k个因子
int kthFactor(int n, int k) {
int i = 0, c=0;
while (i <= n / 2) {
i++;
if ((n % i) == 0) {
c++;
if (c == k)
return i;
}
}
return -1;
}
线下换了很多个方法输入在力扣报错的例子,但怎么也找不到是为什么会错..
6.完全平方数
int isPerfectSquare(int num) {
int i,c;
for (i = 1; i * i < num; i++);
c = i * i;
return c==num? 1 : 0;;
}