今天学习的是for循环语句,同样也是很基础呐(虽然没有真正过掉),只不过需要用到脑子了~

直接上题:

LCR 189. 设计机械累加器

int mechanicalAccumulator(int target) {
    int sum = 0;
    for(int i = 1; i <= target; i++) {
        sum += i;
    }
    return sum;
}

231. 2 的幂

bool isPowerOfTwo(int n) {
    如果是1则为2^0,返回true
    if(n == 1) return true;
    小于0不考虑
    if(n <= 0) return false;
    可以让i的值不大于最大溢出数,也可以直接定义long long类型
    for(long long i = 1; i <= n; i *= 2) {
        if(i == n) {
            return true;
        }
    }
    return false;
}

326. 3 的幂 条件改为3即可

bool isPowerOfThree(int n) {
    if(n == 1) return true;

    if(n <= 0) return false;

    for(long long i = 1; i <= n; i *= 3) {
        if(i == n) {
            return true;
        }
    }
    return false;
}

342. 4的幂

bool isPowerOfFour(int n) {
    if(n == 1) return true;

    if(n <= 0) return false;

    for(long long i = 1; i <= n; i *= 4) {
        if(i == n) {
            return true;
        }
    }
    return false;
}

1492. n 的第 k 个因子

int kthFactor(int n, int k) {
    int num = 0;
    for(int i = 1; i <= n; i++) {
        if(n % i == 0) {
            num++;
        }
        if(num == k) return i;
    }
    return -1;
}

367. 有效的完全平方数 注意数字的溢出

bool isPerfectSquare(int num) {
    for(long long i = 1; i <= num; i++) {
        if(i * i == num) return true;
    }
    return false;
}