【每日一题】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;elsecout << "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");elseSystem.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;elsecout << "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 - 4acint 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;elsereturn 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;elsereturn (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' 的结果是 1sum += 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' 的结果是 1sum += 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日开始的天数计数,初始值为1int day = 1;// 定义变量sum,用于累加满足晨跑条件的天数,初始值为0int 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加1sum++;}// 每经过一天,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);}
}

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UE5 gameplay学习1 蓝图修改材质和参数

第一种是直接修改这个材质&#xff0c;比较朴素 这个对象直接Set Material这个很直观就设置了 如果要设置材质的属性&#xff0c;就有一点奇怪了&#xff0c;通常来说get到material就能设置了&#xff0c;这里需要如下操作 create一个dynamic material instance 然后还要指定…

[JAVAEE] 线程安全问题

目录 一. 什么是线程安全 二. 线程安全问题产生的原因 三. 线程安全问题的解决 3.1 解决修改操作不是原子性的问题 > 加锁 a. 什么是锁 b. 没有加锁时 c. 加锁时 d. 死锁 e. 避免死锁 3.2 解决内存可见性的问题 > volatile关键字 (易变的, 善变的) a. 不加…

搭建Golang gRPC环境:protoc、protoc-gen-go 和 protoc-gen-go-grpc 工具安装教程

参考文章&#xff1a; 安装protoc、protoc-gen-go、protoc-gen-go-grpc-CSDN博客 一、简单介绍 本文开发环境&#xff0c;均为 windows 环境&#xff0c;mac 环境其实也类似 ~ ① 编译proto文件&#xff0c;相关插件 简单介绍&#xff1a; protoc 是编译器&#xff0c;用于将…

AUTOSAR_EXP_ARAComAPI的5章笔记(17)

☞返回总目录 相关总结&#xff1a;AutoSar AP CM通信组总结 5.7 通信组 5.7.1 目标 通信组&#xff08;Communication Group&#xff0c;CG&#xff09;是由 AUTOSAR 定义的复合服务模板。它提供了一个通信框架&#xff0c;允许在 AUTOSAR 应用程序之间以对等方式和广播模…

AMBA-CHI协议详解(十)

AMBA-CHI协议详解&#xff08;一&#xff09;- Introduction AMBA-CHI协议详解&#xff08;二&#xff09;- Channel fields / Read transactions AMBA-CHI协议详解&#xff08;三&#xff09;- Write transactions AMBA-CHI协议详解&#xff08;四&#xff09;- Other transac…

【设计模式系列】抽象工厂模式

一、什么是抽象工厂模式 抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;是一种创建型设计模式&#xff0c;它提供了一个接口&#xff0c;用于创建一系列相关或相互依赖的对象&#xff0c;而无需指定它们具体的类。这种模式允许客户端使用抽象的接口来创建一组…

一小时快速入门Android GPU Inspector

本文介绍如何使用 Android GPU Inspector (AGI) 对Android 应用进行系统性能分析和帧性能分析 。面向熟悉Android图形的开发者。 待分析应用需要的前置条件 (1) 将应用设置为可调试状态 <application [...] android:debuggable"true">&#xff08;2&#xff09…

LabVIEW水质监测系统

在面对全球性的海洋污染问题时&#xff0c;利用先进技术进行水质监测成为了保护海洋环境的关键手段之一。开发了一种基于LabVIEW的海洋浮标水质监测系统&#xff0c;该系统能够实时监测并评估近海水域的水质状况&#xff0c;旨在为海洋保护和污染防治提供科技支持。 项目背景 …

svn-拉取与更新代码

右键项目文件 进行更新与提交代码&#xff0c;提交代码选择更改的文件以及填写commit

电子部授课1

今天下午有院科协的授课&#xff0c;涉及电赛知识&#xff0c;单片机环境构建和模拟方向讲解。感觉要学知识还是很多呜呜呜 这是电赛讲解&#xff0c;主要是五个方面&#xff0c;有一个讲太快了没有听清哈哈哈 后面是全程搜概念的模拟&#xff0c;真的有很多知识不太明白 慌乱…

Java项目-基于springboot框架的会员制医疗预约服务管理信息系统项目实战(附源码+文档)

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 开发运行环境 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/…

云曦10月13日awd复现

一、防御 1、改用户密码 passwd <user> 2、改数据库密码 进入数据库 mysql -uroot -proot 改密码 update mysql.user set passwordpassword(新密码) where userroot; 查看用户信息密码 select host,user,password from mysql.user; 改配置文件&#xff0c;将密码改为自己…

Quartus Ⅱ仿真 1.半加器

真服了&#xff0c;csdn上一搜全是收费&#xff0c;服啦服啦&#xff0c;我就自己来写一个吧 仿真波形&#xff1a; 输出结果&#xff1a; 介绍&#xff1a; 半加器&#xff08;Half Adder&#xff09;是数字电路中的一种基本组件&#xff0c;用于实现两个一位二进制数的加…

基于Leaflet和SpringBoot的全球国家综合检索WebGIS可视化

目录 前言 一、Java后台程序设计 1、业务层设计 2、控制层设计 二、WebGIS可视化实现 1、侧边栏展示 2、空间边界信息展示 三、标注成果展示 1、面积最大的国家 2、国土面积最小的国家 3、海拔最低的国家 4、最大的群岛国家 四、总结 前言 在前面的博文中&#xff…

HCIP-HarmonyOS Application Developer 习题(十五)

&#xff08;判断&#xff09;1、在HarmonyOs中发布带权限公共事件&#xff0c;发布者首先要在config.json中申请所需的权限。 答案&#xff1a;正确 分析&#xff1a;发布携带权限的公共事件&#xff1a;构造CommonEventPublishInfo对象&#xff0c;设置订阅者的权限。 &#…

[C++]ecplise C++新建项目跑hello world

测试通过版本&#xff1a; ecplise-cpp 2024-09 ecplise-cpp 2020-09 【前提】 安装好MinGW环境&#xff0c;实际测试不需要下载什么CDT插件就可以运行了。 步骤&#xff1a; &#xff08;1&#xff09;打开ecplise,选择launch 选择File->New->C/C Project 选择C M…

Win11右键默认显示更多选项

Win11默认显示 想要效果 解决方案1 先按住Shift键&#xff0c;再按右键试试。 解决方案2 1.启动命令行&#xff0c;输入命令 reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve2.显示操作成功完成&#…

基于SpringBoot+Vue+uniapp微信小程序的校园反诈骗微信小程序的详细设计和实现(源码+lw+部署文档+讲解等)

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…

【C++复习】经典笔试题

文章目录 八大排序快排过程 卡特兰数反转链表链表的回文结构左叶子之和另一棵树的子树归并排序类与对象编程训练杨辉三角字符串乘积二叉树前序遍历成字符串数组的交集二叉树的非递归前序遍历连续子数组的最大乘积 八大排序 插冒归稳定 快排过程 以 [3,4,6,1,2,4,7] 为例&#…

《献给阿尔吉侬的花束》

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