• 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 。

    1. int sum(int num1, int num2)
    2. {
    3. return num1 + num2;
    4. }

    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;

    1. double* convertTemperature(double celsius, int* returnSize)
    2. {
    3. double* res = (double*)malloc(sizeof(double) * 2);
    4. res[0] = celsius + 273.15;
    5. res[1] = celsius * 1.80 + 32.00;
    6. *returnSize = 2;
    7. return res;
    8. }

     
    3.最小偶倍数
    给你一个正整数 n ,返回 2 和 n 的最小公倍数(正整数)。
    示例 1:
    输入:n = 5
    输出:10
    解释:5 和 2 的最小公倍数是 10 。
    示例 2:
    输入:n = 6
    输出:6
    解释:6 和 2 的最小公倍数是 6 。注意数字会是它自身的倍数。

    解法一: 

    1. int smallestEvenMultiple(int n) {
    2. if (n % 2 == 0) {
    3. return n;
    4. }
    5. else
    6. {
    7. return n * 2;
    8. }
    9. }

    解法二:

    1. int smallestEvenMultiple(int n) {
    2. int result = n % 2 == 0 ? n : 2 * n;
    3. return result;
    4. }

     解法二优化:

    1. int smallestEvenMultiple(int n) {
    2. return n % 2 == 0 ? n : 2 * n;
    3. }

    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

    1. int subtractProductAndSum(int n) {
    2. int sum = 0, mul = 1;
    3. while (n != 0) {
    4. sum += n % 10;
    5. mul *= n % 10;
    6. n = n / 10;
    7. }
    8. return mul - sum;
    9. }

     5.丑数
    丑数 就是只包含质因数 2、3 和 5 的正整数。
    给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 

    1. bool isUgly(int n) {
    2. if (n <= 0) return false;
    3. while (n % 2 == 0) {
    4. n /= 2;
    5. }
    6. while (n % 3 == 0) {
    7. n /= 3;
    8. }
    9. while (n % 5 == 0) {
    10. n /= 5;
    11. }
    12. if (n == 1)
    13. return true;
    14. else
    15. return false;
    16. }

    代码优化:

    1. bool isUgly(int n) {
    2. if (n <= 0) return false;
    3. while (n % 2 == 0) {
    4. n /= 2;
    5. }
    6. while (n % 3 == 0) {
    7. n /= 3;
    8. }
    9. while (n % 5 == 0) {
    10. n /= 5;
    11. }
    12. return n == 1;
    13. }

  • 相关阅读:
    森林防火(资源监管)“空天地人”四位一体监测系统方案
    SkeyeVSS密集场所人流密度监控预警解决方案
    C++项目:在线五子棋对战(网页版)
    MAUI与Blazor共享一套UI,媲美Flutter,实现Windows、macOS、Android、iOS、Web通用UI
    Kafka笔记(简介与安装)
    List,Set,Map集合总结
    序列模型之循环神经网络(二)
    点击化学修饰多肽:DBCO-PEG-YIGSR/RVG29/R8/CCK8肽
    LeetCode 热题100——链表专题(二)
    【Flutter】【widget】Table 表格widget
  • 原文地址:https://blog.csdn.net/m0_73983707/article/details/133924088