[学习笔记]雪国列车 第三日

星星-adcbiss1234 2021-12-02 10:24:08

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;;
}

 

...全文
81 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-非IT技术 发布问题, 以便更快地解决您的疑问

64,190

社区成员

发帖
与我相关
我的任务
社区描述
学习「 算法 」的捷径就是 「 题海战略 」,社区由「 夜深人静写算法 」作者创建,三年ACM经验,校集训队队长,亚洲区域赛金牌,世界总决赛选手。社区提供系统的训练,答疑解惑,面试经验,大厂内推等机会
社区管理员
  • 英雄哪里出来
  • 芝麻粒儿
  • Amy卜bo皮
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

QQ群:480072171

英雄算法交流 8 群

 

试试用AI创作助手写篇文章吧