做防腐木网站,主流跨境电商平台有哪些,在线观看网址最新电影,郑州响应式建站10.14 直角三角形1. 题目2. 解题思路3. 代码实现#xff08;AC_Code#xff09; 10.15 回文判定1. 题目2. 解题思路3. 代码实现#xff08;AC_Code#xff09; 10.16 二次方程1. 题目2. 解题思路3. 代码实现#xff08;AC_Code#xff09; 10.17 互质1. 题目2. 解题思路3… 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 iostreamusing 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 iostreamusing 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 cmathusing 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(ab)用a除以b得到余数r若r为0则b就是a和b的最大公约数;若r不为0则用b除以r再得到新的余数继续这个过程直到余数为0为止此时的除数就是a和b的最大公约数。 3. 代码实现AC_Code
C
【法1】递归
#include iostreamusing 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 iostreamusing 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 stringusing 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 时返回 101String 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 时返回 11String 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 stringusing 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 iostreamusing 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);}
}最后感谢您的阅读期待您的一键三连