1.两整数相加
给你两个整数 num1 和 num2,返回这两个整数的和。
示例 1:
输入:num1 = 12, num2 = 5
输出:17
解释:num1 是 12,num2 是 5 ,它们的和是 12 + 5 = 17 ,因此返回 17 。
示例 2:
输入:num1 = -10, num2 = 4
输出: - 6
解释:num1 + num2 = -6 ,因此返回 - 6 。
int sum(int num1, int num2) { return num1 + num2; }
2. 温度转换
给你一个四舍五入到两位小数的非负浮点数 celsius 来表示温度,以 摄氏度(Celsius)为单位。
你需要将摄氏度转换为 开氏度(Kelvin)和 华氏度(Fahrenheit),并以数组 ans = [kelvin, fahrenheit] 的形式返回结果。
返回数组 ans 。与实际答案误差不超过 10 - 5 的会视为正确答案。
注意:
开氏度 = 摄氏度 + 273.15
华氏度 = 摄氏度 * 1.80 + 32.00
示例 1 :
输入:celsius = 36.50
输出:[309.65000, 97.70000]
解释:36.50 摄氏度:转换为开氏度是 309.65 ,转换为华氏度是 97.70 。
示例 2 :
输入:celsius = 122.11
输出:[395.26000, 251.79800]
解释:122.11 摄氏度:转换为开氏度是 395.26 ,转换为华氏度是 251.798 。
思路与算法:
题目要求将给定摄氏度 celsius\textit{celsius}celsius 转换为开氏度和华氏度,我们根据题目给定的计算公式直接计算即可,其中计算公式如下 :
开氏度:Kelvin = Celsius + 237.15\text{Kelvin} = \text{Celsius} + 237.15Kelvin = Celsius + 237.15;
华氏度:Fahrenheit = Celsius×1.80 + 32.00\text{Fahrenheit} = \text{Celsius} \times 1.80 + 32.00Fahrenheit = Celsius×1.80 + 32.00;
double* convertTemperature(double celsius, int* returnSize) { double* res = (double*)malloc(sizeof(double) * 2); res[0] = celsius + 273.15; res[1] = celsius * 1.80 + 32.00; *returnSize = 2; return res; }
3.最小偶倍数
给你一个正整数 n ,返回 2 和 n 的最小公倍数(正整数)。
示例 1:
输入:n = 5
输出:10
解释:5 和 2 的最小公倍数是 10 。
示例 2:
输入:n = 6
输出:6
解释:6 和 2 的最小公倍数是 6 。注意数字会是它自身的倍数。
解法一:
int smallestEvenMultiple(int n) { if (n % 2 == 0) { return n; } else { return n * 2; } }
解法二:
int smallestEvenMultiple(int n) { int result = n % 2 == 0 ? n : 2 * n; return result; }
解法二优化:
int smallestEvenMultiple(int n) { return n % 2 == 0 ? n : 2 * n; }
4.整数的各位积和之差
给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。
示例 1:
输入:n = 234
输出:15
解释:
各位数之积 = 2 * 3 * 4 = 24
各位数之和 = 2 + 3 + 4 = 9
结果 = 24 - 9 = 15
示例 2:
输入:n = 4421
输出:21
解释:
各位数之积 = 4 * 4 * 2 * 1 = 32
各位数之和 = 4 + 4 + 2 + 1 = 11
结果 = 32 - 11 = 21
int subtractProductAndSum(int n) { int sum = 0, mul = 1; while (n != 0) { sum += n % 10; mul *= n % 10; n = n / 10; } return mul - sum; }
5.丑数
丑数 就是只包含质因数 2、3 和 5 的正整数。
给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false
bool isUgly(int n) { if (n <= 0) return false; while (n % 2 == 0) { n /= 2; } while (n % 3 == 0) { n /= 3; } while (n % 5 == 0) { n /= 5; } if (n == 1) return true; else return false; }
代码优化:
bool isUgly(int n) { if (n <= 0) return false; while (n % 2 == 0) { n /= 2; } while (n % 3 == 0) { n /= 3; } while (n % 5 == 0) { n /= 5; } return n == 1; }