371. 两整数之和https://leetcode.cn/problems/sum-of-two-integers/
最开始的时候我们就是
先不用管题目对解法的要求,最开始的时候我们只要能完成题目就可以了。
int getSum(int a, int b) {
return a+b;
}
面试题 17.01. 不用加号的加法https://leetcode.cn/problems/add-without-plus-lcci/
int add(int a, int b){
return a+b;
}
LCR 190. 加密运算https://leetcode.cn/problems/bu-yong-jia-jian-cheng-chu-zuo-jia-fa-lcof/
这题的话还是最简单的return dataA+dataB;
面试题 08.05. 递归乘法https://leetcode.cn/problems/recursive-mulitply-lcci/
这题的话是
return A*B;
在写题目的时候注意数据的范围,有些时候可能会超出当前数据类型的范围,那么这个时候就需要对数据类型进行强转了。
29. 两数相除https://leetcode.cn/problems/divide-two-integers/
这题的话如果按照之前的思路的话那就是return dividend/divisor;但是我们写完之后还得考虑最后结果的范围。提示那边对数据范围是有解释的。题目说了环境只能储存32位有符号整数。dividend和divisor的范围都是-2^32 <= dividend, divisor <= 2^32 - 1;
这个时候,假如说dividend是-2^32,divisor
是-1呢?那答案就是2^32,那就超出了int类型的范围了,int类型的范围是-2^32到2^32-1。这个时候就没办法了,我们只能额外加一句if了。
int divide(int dividend, int divisor) {
if (dividend == -2147483648 && divisor == -1 ){
return 2147483647;
}
return dividend/divisor;
}
50. Pow(x, n)https://leetcode.cn/problems/powx-n/
这题c语言有一个pow函数,就是用来计算幂的。
double myPow(double x, int n) {
return pow(x,n);
}
这个函数的返回值是x的n次。
69. x 的平方根 https://leetcode.cn/problems/sqrtx/
这题的的话,有一个sqrt函数,是用来算算术平方根的函数,这个函数在math.这个库里面。
int mySqrt(int x) {
return sqrt(x);
}
面试题 16.07. 最大数值https://leetcode.cn/problems/maximum-lcci/
这题用三目运算符。
int maximum(int a, int b){
return a>b?a:b;
}
这句话的意思是如果a>b,那么就返回后面的a,如果不成立,就返回后面的b。