C语言 力扣习题 10.19日 day1

编程入门 行业动态 更新时间:2024-10-13 16:15:10

C语言 力扣<a href=https://www.elefans.com/category/jswz/34/1769768.html style=习题 10.19日 day1"/>

C语言 力扣习题 10.19日 day1

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;elsereturn 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;
}

更多推荐

C语言 力扣习题 10.19日 day1

本文发布于:2023-12-06 20:55:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1668884.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:习题   语言

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!