前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第十一届蓝桥杯——JAVA组真题

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

作者头像
王同学要努力
发布2022-12-20 16:35:54
2200
发布2022-12-20 16:35:54
举报
文章被收录于专栏:https://blog.csdn.net/xia

1.约数问题

代码语言:javascript
复制
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.跑步训练

代码如下 :

代码语言:javascript
复制
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的做法 比较好

代码如下:

代码语言:javascript
复制
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拿到手软哈哈哈哈

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-02-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.约数问题
    • 2.跑步训练
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档