独学而无友,则孤陋而寡闻。希望能够多与大佬进行交流,不断学习,不断进步。
学习过程是互相交流的过程,希望能够得到大家的建议和反馈,从而写出更好的博客来与大家分享。
1 学习内容 循环结构计算机程序有三大结构:顺序结构,选择结构以及循环结构。
其中,选择结构用if,循环结构用for,while实现。简单的结构能够解决的问题很多。
2 Leetcode 刷题 2.1 n数之和相关题目 n数之和
class Solution {
public:
int sumNums(int n) {
int sum = 0;
for(int i = 1; i < n + 1; ++i){
sum += i;
}
return sum;
}
};
2.2 判断n是否为k的幂
相关题目
n为2的幂
n为3的幂
n为4的幂
以上三道题目实际上是同一个类型,在for循环中遍历2,3,4的所有幂,判断其中是否存在与输入n相同的数即可解决。
class Solution {
public:
bool isPowerOfTwo(int n) {
unsigned int k = 1;
if(n <= 0){
return false;
}
if(n == 1){
return true;
}
for(int i = 0; i < 31; ++i){
k *= 2;
if(k == n){
return true;
}
}
return false;
}
};
2.3 找出n的第k个因子
相关题目 n 的第 k 个因子
这里采用全部遍历的方法,后续可以进行算法优化,如当 i > n /2 或者 i > sqrt(n) 时,其实就可以结束循环了。
class Solution {
public:
int kthFactor(int n, int k) {
int count = 0;
for(int i = 1; i < n + 1; ++i){
if(n % i == 0){
count += 1;
if(count == k){
return i;
}
}
}
return -1;
}
};
2.4 完全平方数
相关题目 完全平方数
首先明确完全平方数的定义为 n == i * i,将其作为判断条件,当 p > n时,可以退出循环。
class Solution {
public:
bool isPerfectSquare(int num) {
long long p;
for(int i =1; ; ++i){
p = (long long)i*i;
if (p == num){
return true;
}
if (p > num){
return false;
}
}
return false;
}
};



