第十一届蓝桥杯——JAVA组真题
JAVA 蓝桥
2023-06-13 09:16:05 时间
1.约数问题
public class Main {
// 对于一个整数,能整除这个整数的数称为这个数的约数。
// 例如:1, 2, 3, 6 都是 6 的约数。
// 请问 78120 有多少个约数
public static void main(String[] args) {
int yueshu=0;
for(int i=1;i<=78120;i++){
if(78120%i==0){
yueshu++;
}
}
System.out.println("78120有"+yueshu+"个约数");
}
}
这道题比较基础 直接遍历 然后判断条件就行了 记住 !! 一定只能提交答案 不需要提交源码(doge)
2.跑步训练
代码如下 :
public class 跑步 {
static int []week={6,7,1,2,3,4,5};//一月一号星期六,依次往后推
static int []months={0,31,28,31,30,31,30,31,31,30,31,30,31};
public static void main(String[] args) {
int ans=0;
int sumday=0;//总天数.用来判断星期几
//年
for(int year=2000;year<=2020;year++){
//判断是否是闰年
if(!check(year)){
//不是闰年就按正常的来
for(int month=1;month<=12;month++){
for(int day=1;day<=months[month];day++){
if(day==1||week[sumday%7]==1)
ans+=2;
else ans++;
sumday++;
}
}
}
//是闰年
else {
if(year==2020){//特判一下2020年因为今年就10个月跑
for (int month = 1; month <= 10; month++) {
if(month==10){
ans+=2;
break;
}
if (month != 2&&month<10) {
for (int day = 1; day <= months[month]; day++) {
if (day == 1 || week[sumday % 7] == 1)
ans += 2;
else ans++;
sumday++;
}
}
else if(month==2){
for (int day = 1; day <= 29; day++) {
if (day == 1 || week[sumday % 7] == 1)
ans += 2;
else ans++;
sumday++;
}
}
}
}
else {
for (int month = 1; month <= 12; month++) {
if (month != 2) {
for (int day = 1; day <= months[month]; day++) {
if (day == 1 || week[sumday % 7] == 1)
ans += 2;
else ans++;
sumday++;
}
} else {
for (int day = 1; day <= 29; day++) {
if (day == 1 || week[sumday % 7] == 1)
ans += 2;
else ans++;
sumday++;
}
}
}
}
}
}
System.out.println(ans);
}
static boolean check(int year){
if((year%4==0&&year%100!=0)||year%400==0){
return true;
}
else return false;
}
}
我更推荐下面这种 用api的做法 比较好
代码如下:
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Main {
public static void main(String[] args) {
Calendar start = Calendar.getInstance();
Calendar end = Calendar.getInstance();
start.set(2000, Calendar.JANUARY, 1);
end.set(2020, Calendar.OCTOBER, 1);
int res = 0;
do {
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(start.getTime()));
start.add(Calendar.HOUR, 24);
res += start.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY || start.get(Calendar.DAY_OF_MONTH) == 1 ? 2 : 1;
} while (start.getTimeInMillis() < end.getTimeInMillis());
System.out.println(res);
}
}
答案是 8878千米
一定要记住 直接提交 答案就好呢!!
以上就是我给友友们 准备的两道基础题
后面我会写更多类似的真题 哈
祝大家 新的一年offer拿到手软哈哈哈哈
相关文章
- java volatile关键字的作用_Java并发编程彻底搞懂volatile关键字「建议收藏」
- Java集合详解(超详细)
- java中scanner意思_Java中的Scanner
- Java案例:实现九九乘法表「建议收藏」
- Java字符串转集合_java集合转数组
- Java cloneable_java浅克隆和深克隆
- JAVA读取csv文件_java读取csv文件某一列
- Java和TypeScript开发者之间的区别必须知道
- 蓝桥杯——java(b组)省赛
- Java中使用正则表达式
- Java:构建简单的速率限制器
- JAVA实战:如何让单元测试覆盖率达到80%甚至以上
- 【错误记录】生成 Java 文档错误 ( Xxx.java:xx: 错误: 编码GBK的不可映射字符 )
- 【错误记录】Java AWT 图形界面编程界面中出现中文乱码 ( Run/Debug Configurations 对话框 VM options 中设置 -Dfile.encoding=gbk )
- Java 实现的断点下载详解编程语言
- Java与MySQL的实现协同(java和mysql)
- java中length,length(),size()区别详解编程语言
- 使用Java操作Redis数据库(java中使用redis)
- Java远程登录Linux服务器入门指南(java远程linux)
- Java联合Redis:建立良好数据连接(java连接redis)
- Linux下配置Java开发环境的指南(linux配置java环境)
- 处理Java中Redis过期处理方法研究(redisjava过期)
- 的处理Java处理Redis过期记录的最佳实践(redisjava过期)
- Linux下安装Java 开发环境指南(linux装java环境)
- Java中使用Redis包实现高效缓存(redis包java)
- 使用Java连接SQL Server数据库,快速高效地管理数据(java连接sqlserver数据库)
- Linux 下安装Java:快速从零开始(linux 下载java)
- Java应用在Linux上乱码的原因及解决方法(java linux乱码)
- Oracle数据库中调用Java实现可扩展应用程序(oracle内嵌java)
- Java数据库之MySQL学习使用教程(mysql中java教程)
- Oracle收购了Java一个伟大的转折点(java被oracle吗)