1 学习内容:函数。
功能复杂的计算机程序的可维护性要求高,以函数的形式进行编程能够有效提高代码的复用,并且方便维护,因此函数的重要性不言而喻。
2 Leetcode 刷题
今天的目的只是熟悉函数编程,所以并没有按照题目要求对编写的代码进行限制。
2.1 整数加法
相关题目
这里其实想要考察的是位运算,先直接用加法运算,只是熟悉一下函数,后续会再专门写篇博客实现位运算。三道题目是一样,源码如下。
class Solution {
public:
int getSum(int a, int b) {
return a+b;
}
};
2.2 乘法运算
相关题目 面试题 08.05. 递归乘法
class Solution {
public:
int multiply(int A, int B) {
return A * B;
}
};
2.3 除法运算
相关题目 29. 两数相除
class Solution {
public:
int divide(int dividend, int divisor) {
if (dividend == pow(-2, 31) && divisor == -1){
return pow(2,31)-1;
}
return dividend / divisor;
}
};
2.4 幂运算
相关题目
class Solution {
public:
double myPow(double x, int n) {
return pow(x,n);
}
};
class Solution {
public:
int mySqrt(int x) {
return int(sqrt(x));
}
};
2.5 最大数值
相关题目 面试题 16.07. 最大数值
这道题目主要考察三目运算符,比较简单。
class Solution {
public:
int maximum(int a, int b) {
return a > b ? a : b;
}
};
2.6 拓展
相关题目 2119. 反转两次的数字
这道题目比较有意思,实际上就是关注所给的数字是不是以0结尾的,显然,0是符合要求的反转数,其他以0结尾的数则不符合。
class Solution {
public:
bool isSameAfterReversals(int num) {
return num==0? true: num%10 != 0;
}
};