欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

第十一届蓝桥杯——JAVA组真题

时间:2023-06-22
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拿到手软哈哈哈哈

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。