第十一届蓝桥杯——JAVA组真题
Posted 学好c语言的小王同学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十一届蓝桥杯——JAVA组真题相关的知识,希望对你有一定的参考价值。
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千米
一定要记住 直接提交 答案就好呢!!
以上就是我给友友们 准备的两道基础题
后面我会写更多类似的真题 哈
如果我的文章对友友们有帮助的话
麻烦给个三连ba(狗头)
祝大家 新的一年offer拿到手软哈哈哈哈
以上是关于第十一届蓝桥杯——JAVA组真题的主要内容,如果未能解决你的问题,请参考以下文章
第十二届蓝桥杯 2021年省赛真题 (Java 大学B组) 第一场 (更新中)