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的幂
相关题目
以上三道题目实际上是同一个类型,在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;
}
};