java算法题 Day8

由于未提供博客具体内容,暂无法给出包含关键信息的摘要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

 

### Java 基础算法练习题及答案 以下是几道经典的 Java 基础算法题目及其解答: #### 题目一:判断素数 实现一个方法 `isPrime` 来检测给定整数是否为素数。 ```java public class PrimeNumber { public static boolean isPrime(int n) { if (n <= 1) return false; for (int i = 2; i * i <= n; i++) { if (n % i == 0) return false; } return true; } public static void main(String[] args) { for (int i = 2; i <= 200; i++) { if (isPrime(i)) System.out.println(i); } } } ``` 上述代码通过循环遍历小于等于平方根的部分来优化性能[^1]。 --- #### 题目二:计算数字位数 编写函数 `digitCount` 计算任意正整数的位数。 ```java public class DigitCounter { public static int digitCount(int number) { return String.valueOf(number).length(); } public static void main(String[] args) { System.out.println(digitCount(12345)); // 输出 5 } } ``` 这里利用字符串转换的方式简化逻辑处理[^2]。 --- #### 题目三:求平方根(向下取整) 设计一种简单的方法找到某个非负整数的平方根并返回其整数值部分。 ```java public class SqrtCalculator { public static int sqrt(int x) { long result = 0; while ((result + 1) * (result + 1) <= x) { result++; } return (int) result; } public static void main(String[] args) { System.out.println(sqrt(16)); // 输出 4 } } ``` 此版本采用逐步逼近法替代暴力枚举,提升效率[^3]。 --- #### 题目四:日期问题——一年中的第几天 创建程序接受用户输入的一组年份、月份和具体某天的数据组合形式作为参数传入后得出结论说明这是这一年内按顺序排列下来的哪一天的位置编号情况如何判定呢?考虑到了特殊情形下的闰年的存在与否影响因素分析如下所示: ```java import java.util.Scanner; public class DayOfYear { public static boolean isLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); } public static int dayOfYear(int year, int month, int day) { int[] daysInMonth = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; if(isLeapYear(year)){ daysInMonth[1]=29; } int totalDays = 0; for (int i = 0; i < month - 1; ++i){ totalDays += daysInMonth[i]; } return totalDays + day; } public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.print("Enter Year : "); int y=scanner.nextInt(); System.out.print("Enter Month : "); int m=scanner.nextInt(); System.out.print("Enter Date : "); int d=scanner.nextInt(); System.out.printf("%d-%d-%d is the %dth day of the year.\n",y,m,d,dayOfYear(y,m,d)); } } ``` 这段代码实现了对指定日期属于当年多少号的功能支持,并妥善处理了关于平年还是闰年之内的差异调整机制[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值