【每日一题】24.10.14 - 24.10.20

  • 10.14 直角三角形
    • 1. 题目
    • 2. 解题思路
    • 3. 代码实现(AC_Code)
  • 10.15 回文判定
    • 1. 题目
    • 2. 解题思路
    • 3. 代码实现(AC_Code)
  • 10.16 二次方程
    • 1. 题目
    • 2. 解题思路
    • 3. 代码实现(AC_Code)
  • 10.17 互质
    • 1. 题目
    • 2. 解题思路
    • 3. 代码实现(AC_Code)
  • 10.18 穿越时空之门
    • 1. 题目
    • 2. 解题思路
    • 3. 代码实现(AC_Code)
  • 10.19 元音大写
    • 1. 题目
    • 2. 解题思路
    • 3. 代码实现(AC_Code)
  • 10.20 跑步
    • 1. 题目
    • 2. 解题思路
    • 3. 代码实现(AC_Code)

在这里插入图片描述
在这里插入图片描述

上期回顾:【每日一题】24.10.7 - 24.10.13
个人主页:C_GUIQU
归属专栏:每日一题

10.14 直角三角形

1. 题目

直角三角形

在这里插入图片描述

2. 解题思路

用if判断,列出三种形式的勾股定理。

3. 代码实现(AC_Code)

  • C++
#include <iostream>

using namespace std;

int main()
{
    int a,b,c;
    cin >> a >> b >> c;

    if(a*a + b*b == c*c || a*a + c*c == b*b || b*b + c*c == a*a)
        cout << "YES" << endl;
    else
        cout << "NO" << endl;

    return 0;
}
  • Java
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int a = scan.nextInt();
        int b = scan.nextInt();
        int c = scan.nextInt();

        if(a*a + b*b == c*c || a*a + c*c == b*b || b*b + c*c == a*a)
            System.out.println("YES");
        else
            System.out.println("NO");

        scan.close();
    }
}

10.15 回文判定

1. 题目

回文判定

在这里插入图片描述

2. 解题思路

从前往后遍历的同时从后往前遍历,判断对应字符是否相等。

3. 代码实现(AC_Code)

  • C++
#include <iostream>

using namespace std;

int main()
{
    string str;
    cin >> str;

    for (int i = 0, j = str.length() - 1; i < str.length() / 2; i++, j--)
    {
        if(str[i] != str[j])
        {
            cout << "N" << endl;
            return 0;
        } 
    }
    cout << "Y" << endl;

    return 0;
}
  • Java
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String str = scan.next();

        for (int i = 0, j = str.length() - 1; i < j; i++, j--) {
            if(str.charAt(i) != str.charAt(j)) {
                System.out.println("N");
                return ;
        }
    }
        System.out.println("Y");
        scan.close();
    }
}

10.16 二次方程

1. 题目

二次方程

在这里插入图片描述

2. 解题思路

具体见代码

3. 代码实现(AC_Code)

  • C++
#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    int a, b, c;
    cin >> a >> b >> c;

    int delta = b * b - 4 * a * c;
    if(delta < 0)
        cout << "NO" << endl;
    else
    {
        // 用double相对于int更准确
        double x1 = (-b + sqrt(delta) / 2.0 * a);
        double x2 = (-b + sqrt(delta) / 2.0 * a);

        if(x1 == (int)x1 && x2 == (int)x2)
            cout << "YES" << endl;
        else
            cout << "NO" << endl;
    }

    return 0;
}
  • Java
import java.util.Scanner;
import java.lang.Math; // 用于调用sqrt函数

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int c = scanner.nextInt(); // 读取输入的三个整数

        // 判别式 delta = b^2 - 4ac
        int delta = b * b - 4 * a * c;

        // 检查方程是否有实数根,并且这些根是否为整数
        if (delta < 0) {
            // 如果判别式小于0,则方程没有实数根
            System.out.println("NO");
        } else {
            // 计算两个根
            double x1 = (-b + Math.sqrt(delta)) / (2.0 * a);
            double x2 = (-b - Math.sqrt(delta)) / (2.0 * a);

            // 检查根是否为整数
            if (x1 == Math.floor(x1) && x2 == Math.floor(x2)) {
                System.out.println("YES");
            } else {
                System.out.println("NO");
            }
        }

        scanner.close();
    }
}

10.17 互质

1. 题目

互质

在这里插入图片描述

2. 解题思路

用欧几里得算法找出任意两个正整数的最大公约数,判断是否为1,为1则是质数,反之则不是质数。

法1:递归
法2:迭代
在递归版本中,函数不断地调用自身,直到 b 为 0,此时返回 a,即为最大公约数。在迭代版本中,使用一个循环不断更新 a 和 b 的值,直到 b 为 0,此时 a 就是最大公约数。

【欧几里得算法】又称辗转相除法,是用来求两个正整数最大公约数的一种方法。
算法原理:
假设两个数为a和b(a>b),用a除以b得到余数r,若r为0,则b就是a和b的最大公约数;若r不为0,则用b除以r,再得到新的余数,继续这个过程,直到余数为0为止,此时的除数就是a和b的最大公约数。

在这里插入图片描述

3. 代码实现(AC_Code)

  • C++

【法1】递归

#include <iostream>

using namespace std;

int gcd(int a, int b)
{
    if(b == 0)
        return a;
    else
        return gcd(b, a % b);
}

int main()
{
    int count = 0;
    for(int i =1; i <= 2020; i++)
    {
        if(gcd(i, 1018) == 1)
            count++;
    }
    cout << count << endl;

    return 0;
}

【法2】迭代

#include <iostream>

using namespace std;

int gcd(int a, int b)
{
    while(b != 0)
    {
        int temp = b;
        b = a % b;
        a = temp;
    }
    return a;
}

int main()
{
    int count = 0;
    for(int i =1; i <= 2020; i++)
    {
        if(gcd(i, 1018) == 1)
            count++;
    }
    cout << count << endl;

    return 0;
}
  • Java

【法1】递归

public class Main {
    public static int gcd(int a, int b) {
        if(b == 0)
            return a;
        else
            return (gcd(b,a % b));
    }
    
    public static void main(String[] args) {
        int count = 0;
        for(int i = 1; i <= 2020; i++) {
            if(gcd(i, 1018) == 1)
                count++;
        }
        System.out.println(count);
    }
}

【法2】迭代

public class Main {
    public static int gcd(int a, int b) {
        while(b != 0) {
            int temp = b;
            b = a % b;
            a = temp;
        }
        return a;
    }
    
    public static void main(String[] args) {
        int count = 0;
        for(int i = 1; i <= 2020; i++) {
            if(gcd(i, 1018) == 1)
                count++;
        }
        System.out.println(count);
    }
}

10.18 穿越时空之门

1. 题目

穿越时空之门

在这里插入图片描述

2. 解题思路

具体见代码。

3. 代码实现(AC_Code)

  • C++
#include <iostream>
#include <string>

using namespace std;

// 计算给定整数 n 的二进制表示中各位数字之和的函数
int getBinarySum(int n)
{
    string binary = "";
    // 将整数 n 转换为二进制表示并存入字符串 binary 中
    while(n > 0)
    {
        binary = to_string(n % 2) + binary;
        n /= 2;
    }
    
    int sum = 0;
    // 遍历二进制字符串,计算各位数字之和
    for(char digit : binary)
    {
        // 将字符类型的数字字符转换为实际数字值并累加到 sum 中
        // 例如,'1' - '0' 的结果是 1
        sum += digit - '0';
    }
    return sum;
}

// 计算给定整数 n 的四进制表示中各位数字之和的函数
int getQuaternarySum(int n)
{
    string Quaternary = "";
    // 将整数 n 转换为四进制表示并存入字符串 Quaternary 中
    while(n > 0)
    {
        Quaternary = to_string(n % 4) + Quaternary;
        n /= 4;
    }
    
    int sum = 0;
    // 遍历四进制字符串,计算各位数字之和
    for(char digit : Quaternary)
    {
        // 将字符类型的数字字符转换为实际数字值并累加到 sum 中
        sum += digit - '0';
    }
    return sum;
}

int main()
{
    int count = 0;
    // 遍历从 1 到 2024 的所有整数
    for(int i = 1; i <= 2024; i++)
    {
        // 如果当前整数 i 的二进制表示各位数字之和等于四进制表示各位数字之和
        if(getBinarySum(i) == getQuaternarySum(i))
            count++;
    }
    // 输出符合穿越条件的勇者人数
    cout << count << endl;

    return 0;
}
  • Java
public class BinaryQuaternaryEquality {
    // 计算给定整数 n 的二进制表示中各位数字之和的方法
    public static int getBinarySum(int n) {
        // 将整数 n 转换为二进制字符串表示,例如 n = 5 时,返回 "101"
        String binary = Integer.toBinaryString(n);
        int sum = 0;
        // 将二进制字符串转换为字符数组进行遍历
        for (char digit : binary.toCharArray()) {
            // 将字符类型的数字字符转换为实际数字值并累加到 sum 中,
            // 例如,'1' - '0' 的结果是 1
            sum += digit - '0';
        }
        return sum;
    }

    // 计算给定整数 n 的四进制表示中各位数字之和的方法
    public static int getQuaternarySum(int n) {
        // 将整数 n 转换为四进制字符串表示,例如 n = 5 时,返回 "11"
        String quaternary = Integer.toString(n, 4);
        int sum = 0;
        // 将四进制字符串转换为字符数组进行遍历
        for (char digit : quaternary.toCharArray()) {
            // 将字符类型的数字字符转换为实际数字值并累加到 sum 中
            sum += digit - '0';
        }
        return sum;
    }

    public static void main(String[] args) {
        int count = 0;
        // 遍历从 1 到 2024 的整数
        for (int i = 1; i <= 2024; i++) {
            // 如果当前整数 i 的二进制表示各位数字之和等于四进制表示各位数字之和
            if (getBinarySum(i) == getQuaternarySum(i)) {
                count++;
            }
        }
        // 输出符合穿越条件的勇者人数
        System.out.println(count);
    }
}

10.19 元音大写

1. 题目

元音大写

在这里插入图片描述

2. 解题思路

遍历字符串,逐个判断是否为元音字母,转换为大写字母后输出最终的字符串。

3. 代码实现(AC_Code)

  • C++
#include <iostream>
#include <string>

using namespace std;

int main()
{
    string str;
    cin >> str;

    for (int i = 0; i < str.length(); i++)
    {
        if (str[i] == 'a' || str[i] == 'e' || str[i] == 'i' || str[i] == 'o' || str[i] == 'u')
            str[i] = toupper(str[i]);
    }
    cout << str << endl;

    return 0;
}
  • Java
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String str = scan.next();

        // 将输入的字符串转换为字符数组
        char[] charArray = str.toCharArray();

        for (int i = 0; i < charArray.length; i++) {
            if (charArray[i] == 'a' || charArray[i] == 'e' || charArray[i] == 'i' || charArray[i] == 'o' || charArray[i] == 'u')
                // 将当前字符转换为大写形式
                charArray[i] = Character.toUpperCase(charArray[i]);
        }
        // 将修改后的字符数组转换回字符串并输出
        System.out.println(new String(charArray));

        scan.close();
    }
}

10.20 跑步

1. 题目

跑步

在这里插入图片描述

2. 解题思路

具体见代码。

3. 代码实现(AC_Code)

  • C++
#include <iostream>

using namespace std;

int main()
{
    // 定义一个数组month,用于存储每个月的天数
    // 这里按照非闰年的情况初始化,2月为28天
    int month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    // 定义变量day,用于模拟从2022年1月1日开始的天数计数,初始值为1
    int day = 1;
    // 定义变量sum,用于累加满足晨跑条件的天数,初始值为0
    int sum = 0;

    // 外层循环,遍历12个月
    for (int i = 0; i < 12; i++)
    {
        // 内层循环,遍历每个月的天数
        for (int j = 1; j <= month[i]; j++)
        {
            // 判断当前日期是否满足晨跑条件
            // 如果是周六(day % 7 == 1)或者周日(day % 7 == 2)
            // 或者是每月的1日、11日、21日、31日,则满足条件
            if (day % 7 == 1 || day % 7 == 2 || j == 1 || j == 11 || j == 21 || j == 31)
            {
                // 如果满足晨跑条件,将sum加1
                sum++;
            }
            // 每经过一天,day的值增加1,模拟天数的递增
            day++;
        }
    }
    // 输出满足晨跑条件的总天数
    cout << sum << endl;

    return 0;
}
  • Java
public class Main {
    public static void main(String[] args) {
        int month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, day = 1, sum = 0;

        for(int i = 0; i < 12; i++) {
            for(int j = 1; j <= month[i]; j++) {
                if(day % 7 == 1 || day % 7 == 2 || j == 1 || j == 11 || j == 21 || j == 31)
                    sum++;
                day++;
            }
        }
        System.out.println(sum);
    }
}

最后,感谢您的阅读,期待您的一键三连!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/895908.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于单片机的多功能鱼缸控制系统设计

本设计以STC12C5A60S2单片机为核心的多功能鱼缸控制系统&#xff0c;该系统可分别利用温度传感器、水位传感器和浑浊度传感器来检测鱼缸内部的水温、液体高度和浑浊程度&#xff0c;并在显示屏上进行显示。若检测结果超出阈值范围&#xff0c;则继电器工作从而控制内部环境。通…

Golang | Leetcode Golang题解之第482题秘钥格式化

题目&#xff1a; 题解&#xff1a; func licenseKeyFormatting(s string, k int) string {ans : []byte{}for i, cnt : len(s)-1, 0; i > 0; i-- {if s[i] ! - {ans append(ans, byte(unicode.ToUpper(rune(s[i]))))cntif cnt%k 0 {ans append(ans, -)}}}if len(ans) &…

汽车电子存储解决方案:IS61WV20488FALL

ISSI在SRAM领域的技术创新体现在采用高性能CMOS工艺制造&#xff0c;提供低功耗设计&#xff0c;以及支持宽温度范围的稳定运行。其产品集成了错误更正代码&#xff08;ECC&#xff09;&#xff0c;增强了数据完整性和可靠性。ISSI的SRAM优化了数据处理速度&#xff0c;提供多访…

教你不用下载 maven,不用配置环境变量,在 idea 上创建 maven 项目

我的主页&#xff1a;2的n次方_ 1. Maven Maven是⼀个项⽬管理⼯具, 通过 pom.xml ⽂件的配置获取 jar 包&#xff0c;⽽不⽤⼿动去添加 jar 包&#xff0c;这样就大大的提高了开发效率 2. Maven 的核心功能 2.1. 项目构建 创建第一个 Maven 项目 Maven 提供了标准的…

CDC变更数据捕捉技术是什么?和ETL有什么不同?

一、什么是CDC技术? 变更数据捕获&#xff08;Change Data Capture&#xff0c;简称 CDC&#xff09;是一种用于识别和跟踪数据源中发生变化的数据的技术。 工作原理&#xff1a; 1.监测数据源&#xff1a;CDC 工具会持续监测指定的数据源&#xff0c;如数据库表、文件系统…

Qt开发------容器控件(QWidget,QFrame、QMainWindow、QScrollArea)

目录 一、QWidget 二、QFrame 三、QMainWindow 四、QScrollArea&#xff08;面板滚动&#xff09; 层次结构如下&#xff1a; QObject└── QPaintDevice└── QWidget├── QMainWindow├── QDialog├── QFrame│ ├── QLabel│ ├── QSplitter│ …

react 中的hooks中的useState

(1). State Hook让函数组件也可以有state状态, 并进行状态数据的读写操作 (2). 语法: const [xxx, setXxx] React.useState(initValue) (3). useState()说明:参数: 第一次初始化指定的值在内部作缓存返回值: 包含2个元素的数组, 第1个为内部当前状态值, 第2个为更新状态值的…

关于SSD1306的OLED的显示的研究

文章目录 函数作用参数解释嵌套函数分析主代码分析逻辑流程总结 难点的解析&#xff1a;生成器的主要逻辑分解&#xff1a;每次生成的元组 (pixel_x, pixel_y, pixel_mask)&#xff1a;生成器的整体流程举例总结 反转后的文本绘制竖直布局有问题的旋转180度旋转坐标轴绘制矩形绘…

Chromium form表单post提交过程分析c++

form表单get提交参考之前文章Chromium 前端form表单提交过程分析c-CSDN博客 一、表单post提交测试例子&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>菜鸟教程(runoob.com)</title> </head&…

【火山引擎】AIGC图像风格化 | 风格实践 | PYTHON

目录 1 准备工作 2 实践 代码 效果图 1 准备工作 ① 服务开通 确保已开通需要访问的服务。您可前往火山引擎控制台,在左侧菜单中选择或在顶部搜索栏中搜索需要使用的服务,进入服务控制台内完成开通流程。

TWS蓝牙耳机发展史

目录 1&#xff1a;人类历史第一副耳机 2&#xff1a;第一台手持式耳机 3&#xff1a;第一台头戴式耳机 4&#xff1a;第一台动圈式耳机 5&#xff1a;第一台立体声耳机 6&#xff1a;第一台压耳式耳机 7&#xff1a;随身听 8&#xff1a;商用降噪耳机 9&#xff1a;i…

数据结构7——二叉树的顺序结构以及堆的实现

在上篇文章数据结构6——树与二叉树中&#xff0c;我们了解了树和二叉树的概念&#xff0c;接着上篇文章&#xff0c;在本篇文章中我们学习二叉树顺序结构的实现。 目录 1. 二叉树的顺序存储结构 2. 堆的概念及结构 1. 堆的概念 2. 堆的结构 3. 堆的实现 1. 堆节点 2. 交…

《献给阿尔吉侬的花束》

这是看过的错别字最多的一本书&#xff0c;错别字多并不是这本书的缺点&#xff0c;反而是一个亮点。全书以“近步抱告”的形式讲述了想变“聪明”的查理的故事。很治愈&#xff0c;也很虐心。聪明有聪明的代价&#xff0c;看到的感受到的越多&#xff0c;需要强大的内心去承受…

LeetCode 精选 75 回顾

目录 一、数组 / 字符串 1.交替合并字符串 &#xff08;简单&#xff09; 2.字符串的最大公因子 &#xff08;简单&#xff09; 3.拥有最多糖果的孩子&#xff08;简单&#xff09; 4.种花问题&#xff08;简单&#xff09; 5.反转字符串中的元音字母&#xff08;简单&a…

高性能 JSON 处理:为何选择 Fastjson?

一、关于Fastjson 1.1 简介 Fastjson 是由阿里巴巴集团开发的一个高性能的 JSON 处理库&#xff0c;它支持 Java 对象与 JSON 字符串之间的互相转换。Fastjson 自 2011 年发布以来&#xff0c;以其卓越的性能和丰富的功能在 Java 社区中获得了广泛的应用。 Alibaba Fastjson:…

RabbitMQ系列学习笔记(九)--路由模式

文章目录 一、路由模式原理二、多重绑定三、路由模式实战1、消费者代码2、生产者代码3、运行结果分析 本文参考 尚硅谷RabbitMQ教程丨快速掌握MQ消息中间件rabbitmq RabbitMQ 详解 Centos7环境安装Erlang、RabbitMQ详细过程(配图) 一、路由模式原理 使用发布订阅模式时&#x…

C++ -string -常见用法5

博客主页&#xff1a;【夜泉_ly】 本文专栏&#xff1a;【C】 欢迎点赞&#x1f44d;收藏⭐关注❤️ 文章目录 &#x1f4a1;前言&#x1f4a1;非成员函数1.operator1.1函数原型1.2使用1.3注意 2.relational operators3.swap4.operator>>5.operator<<6.operator<…

Javascript算法(滑块窗口、螺旋矩阵)

滑块窗口 JS滑块窗口算法&#xff0c;即滑动窗口算法&#xff08;Sliding Window&#xff09;&#xff0c;在JavaScript中的应用场景主要集中在处理字符串和数组等数据结构中的子串或子数组问题。这种算法通过维护一个窗口&#xff0c;并移动窗口的两个边界&#xff08;左右指…

Linux命令进阶·vi\vim编辑器详细命令介绍

目录 1. 什么是 vim&#xff1f; 2. vi\vim 模式介绍 2.1 命令模式&#xff08;Command mode&#xff09; 2.2 输入模式&#xff08;Insert mode&#xff09; 2.3 底线命令模式&#xff08;Last line mode&#xff09; 3. vi\vim 的使用 4. 命令介绍 1. 什么是 …

微信小程序-自定义组件

文章目录 微信小程序-自定义组件概述创建和使用数据、方法和属性slot 插槽默认插槽具名插槽 组件样式注意项样式隔离 数据监听组件间通信父传子子传父获取子组件实例 生命周期组件的生命周期组件所在页面的生命周期App、Page与Component生命周期对比冷启动保留当前页面和关闭当…